Schleifen in VBA

starbug

Erfahrenes Mitglied
Hallo,

ich bin noch ein Neuling in VBA Programmierung und habe gleich mal eine Frage. Ich habe
eine Excel Tabelle mit drei Spalten. In der ersten Spalte steht immer eine ArtikelNr.
Ich möchte jetzt eine Makro erstellen, das in der dritten Spalte einen Wert schreibt ( in meinem Fall ist das der Name einer Stadt) solange in der ersten Spalte noch eine Artikel Nr. steht. Also so irgendwie:

While Spalte1 nicht leer
schreibe Stadt in Spalte 3

Kann mir jemand helfen?
 
Visual Basic:
Dim zeile
zeile = 1
While Tabelle1.Cells(zeile, 1) <> ""
    Tabelle1.Cells(zeile, 3) = "Irgend ein Text"
    zeile = zeile + 1
Wend

In diesem Beispiel wird die Spalte 1 bzw. "A" des Tabellenblatts "Tabelle1" so lange durchlaufen bis eine leere Zelle gefunden wird. In Spalte 3 bzw. "C" wird irgend ein Text eingetragen.
 
Ps. Anstelle vom unschönen "" beitet VBA die Constante Variable vbNullString an. Ist Geschmackache, aber ich ziehe Konstanten vor, da es sich zu " " leichter unterscheiden lässt
Visual Basic:
While Tabelle1.Cells(zeile, 1) <> vbNullString
 
Hallo,

danke für die schnelle Antwort. Hab das jetzt mal ausprobiert aber
bei mir kommt eine Fehlermeldung in der steht Laufzeitfehler '424' Objekt erforderlich.
Ich hab keine Ahnung was das bedeutet. Hier mal mein Code:

Code:
Sub PlantEinfuegen()
    Dim zeile
    zeile = 1
    While Tabelle7.Cells(zeile, 1) <> ""
        Tabelle7.Cells(zeile, 3) = "Dortmund"
        zeile = zeile + 1
    Wend
End Sub
 
Wo hast du den Code eingefügt innerhalb der Tabelle7 oder in den Codebereich der Arbeitsmappe selber?

In welcher Zeile wird der Fehler ausgelöst?
 
Also wenn ich in den Debug-Modus gehe ist While Tabelle7.Cells(zeile, 1) <> "" ´gelb hinterlegt.
Und wenn du mit Codebereich die entwicklungsumgebung meinst dann hab ich das dort
geschrieben
 
Sorry das geht leider nicht weil die Tabelle Daten von meinem Betrieb enthält.
Aber das hat auch nix mit den verschiedenen Modulen oder so zu tun oder?
 
Das einzige was ich mir verstellen kann ist das der Code in einem Bereich steht wo eben das Objekt "Tabelle7" nicht bekannt ist.

Wenn du Code in Modulen stehen hast oder wenn du mit Formularen arbeitest, dann kann das schon sein. Deshalb wollte ich ja wissen wo du den Code eingegeben hast!
 
Hmmm,

also ich weiss nicht was du genau damit meinst wo ich den Code eingegeben habe. Ich hab in
meinem Tabellenblatt (also hier Tabelle7) den Makroeditor geöffnet, mir ein neues Makro angelegt
und dann in der Entwicklungsumgebung den Code eingegeben.
 

Neue Beiträge

Zurück