Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Wert in einer Spalte eintragen bis Ende

Wert in einer Spalte eintragen bis Ende
Nicole
Hallo alle zusammen,
ich möchte eigentlich einfach nur in Spalte A ein "X" eingefügt haben, solange in Spalte Y ein Wert steht.
Steh da irgendwie gerade auf dem Schlauch. Mit meiner Formel gibt es kein Ende, es wird alles ausgefüllt.
Do Until IsEmpty(ZelleA)
Set ZelleA = rgQuelle1.Offset(A, 0)
If ZelleA.Value "" Then
ZelleA.Offset(A, -24).Value = "X"
End If
A = A + 1
Loop
Vielen Dank für die Hilfe
Nicole
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Wert in einer Spalte eintragen bis Ende
09.12.2009 16:51:44
hary
Hi
eine Moeglichkeit.

Sub X()
Dim i As Long
Application.ScreenUpdating = False
Range("A:A").ClearContents 'löscht nach aenderungen erstmal die X
For i = 1 To Cells(Rows.Count, 25).End(xlUp).Row 'bis letzte belegte Zelle in Y
If Cells(i, 25)  "" Then Cells(i, 1) = "X"
Next
Application.ScreenUpdating = True
End Sub

gruss hary
Anzeige
AW: Wert in einer Spalte eintragen bis Ende
09.12.2009 16:52:07
fcs
Hallo Nicole,
im Prinzip sollte es schon funktionieren. Vorraussetzung ist natürlich, dass rgQuelle1 eine Zelle in Spalte Y ist.
Der Zeilen-Offset für das Eintragen der "X" muss dann aber 0 sein, damit in die gleiche Zeile eingetragen wird.
In Spalte Y darf in den scheinbar leeren Zellen aber auch nur nichts bzw. das Formelergebis "" (Leerstring) stehen.
Gruß
Franz
Sub aatest()
Dim rgQuelle1 As Range, ZelleA As Range, A As Long
Set rgQuelle1 = ActiveCell            'Testzeile
If rgQuelle1.Column  25 Then        '#angepasst
MsgBox "Startzelle ist nicht in Spalte Y" '#angepasst
Else                                  '#angepasst
A = 0                               '#angepasst
Set ZelleA = rgQuelle1
Do Until IsEmpty(ZelleA)
Set ZelleA = rgQuelle1.Offset(A, 0)
If ZelleA.Value  "" Then
ZelleA.Offset(0, -24).Value = "X"  '#angepasst
End If
A = A + 1
Loop
End If                                   '#angepasst
End Sub

Anzeige
AW: Wert in einer Spalte eintragen bis Ende
09.12.2009 17:15:12
Nicole
Super Franz, mit deinem Code klappt es.
Vielen Dank
Nicole
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Wert in einer Spalte bis zum Ende eintragen


Schritt-für-Schritt-Anleitung

Um in einer Excel-Spalte Werte einzutragen, solange in einer anderen Spalte Werte vorhanden sind, kannst du den folgenden VBA-Code verwenden:

Sub X()
    Dim i As Long
    Application.ScreenUpdating = False
    Range("A:A").ClearContents 'löscht nach Änderungen erstmal die X
    For i = 1 To Cells(Rows.Count, 25).End(xlUp).Row 'bis letzte belegte Zelle in Y
        If Cells(i, 25) <> "" Then Cells(i, 1) = "X"
    Next
    Application.ScreenUpdating = True
End Sub
  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
  3. Kopiere den obigen Code und füge ihn in das Modul ein.
  4. Schließe den VBA-Editor und kehre zu Excel zurück.
  5. Führe das Makro aus, indem du ALT + F8 drückst und das Makro "X" auswählst.

Häufige Fehler und Lösungen

1. Fehler: "Index außerhalb des gültigen Bereichs"

  • Überprüfe, ob du in der richtigen Spalte arbeitest. Der Code ist für Spalte Y (Spalte 25) ausgelegt.

2. Fehler: "Wert kann nicht zugewiesen werden"

  • Stelle sicher, dass die Zielzelle in Spalte A (Spalte 1) nicht schreibgeschützt ist.

3. Fehler: Es werden zu viele "X" eingetragen

  • Achte darauf, dass in den Zellen der Spalte Y nur echte Werte oder Leerstrings stehen.

Alternative Methoden

Neben VBA gibt es auch eine Möglichkeit, dies direkt in Excel zu erledigen, ohne auf Makros zurückzugreifen. Du kannst die Funktion WENN verwenden:

  1. Gehe zu Zelle A1 und gib die folgende Formel ein:

    =WENN(Y1<>"", "X", "")
  2. Ziehen die Formel nach unten, um sie auf die gesamte Spalte anzuwenden.

Diese Methode ist weniger flexibel, kann aber für kleinere Datenmengen nützlich sein.


Praktische Beispiele

Angenommen, du hast in Spalte Y folgende Werte:

Y
100
200
300

Wenn du das Makro ausführst, wird Spalte A so aussehen:

A
X
X
X

Das zeigt, dass in Spalte A "X" eingetragen wurde, solange in Spalte Y ein Wert vorhanden ist.


Tipps für Profis

  • Optimiere dein Makro, indem du die Bildschirmaktualisierung nur am Anfang und Ende des Codes ausschaltest.
  • Verwende Application.Calculation = xlCalculationManual, um die Berechnung während des Makros zu deaktivieren und die Ausführung zu beschleunigen.
  • Dokumentiere deinen Code, um ihn später leichter nachvollziehen zu können.

FAQ: Häufige Fragen

1. Kann ich das Makro für andere Spalten anpassen? Ja, du musst nur die Spaltennummern in den Cells(i, 25) und Cells(i, 1) anpassen.

2. Funktioniert das auch in Excel Online? Leider nicht. VBA-Makros funktionieren nur in Desktop-Versionen von Excel.

3. Was ist der Unterschied zwischen Makros und Formeln? Makros automatisieren Aufgaben und können komplexe Logik beinhalten, während Formeln einfache Berechnungen durchführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige