Schleifen in VBA

Ich weiß ja nicht mit welcher Office-Version ihr arbeitet, aber mir ist nicht bekannt (ich arbeite mit 2003), dass sich Tabellen als Objekt Ihrer selbst ansprechen lassen. Statt "Tabelle7" muss es immernoch heißen
Code:
ActiveWorkbook.Worksheets("Tabelle7")
 
Häää ? ? ?

Also wenn ich den obigen Code bei mir entweder in den Codebereich des Tabellenblattes (egal ob das eigene oder eine andere), der Arbeitsmappe oder in ein Modul eingebe, läuft es ohne irgendwelche Probleme.
 
ActiveWorkbook kann man auch weglassen, aber so müsste es dann aussehen:
Code:
Sub PlantEinfuegen()
    Dim zeile
    zeile = 1
    While Worksheets("Tabelle7").Cells(zeile, 1) <> ""
        Worksheets("Tabelle7").Cells(zeile, 10) = "Dortmund"
        zeile = zeile + 1
    Wend
End Sub
Wo sollen da Probleme auftreten?
 
... dass sich Tabellen als Objekt Ihrer selbst ansprechen lassen. Statt "Tabelle7" muss es immernoch heißen
Code:
ActiveWorkbook.Worksheets("Tabelle7")

Ich sage nicht das es mit deinem Beispiel Probleme gibt (das kann sogar die Lösung sein). Ich behaupte nur das es bei mir auch dann geht wenn der Name des Tabellenblattes alleine angegeben wird.

Es muss also irgendwo doch noch etwas geben das sich die beiden Schreibweisen unterscheiden.
 
Ist mir ja fast schon peinlich es zu sagen/zu schreiben aber ich habe hier Office 2000.

Gibt es irgendwo eine Einstellung ähnlich "Variablendeklaration erforderlich" mit der Tabellen "öffentlich" zugänglich gemacht werden?

Und vor allen wo ist starbug um zu berichten ob er sein Problem mit deiner Hilfe lösen konnte.
 
Hallo,

hier binich wieder, ich muss dazu sagen ich mache das alles
nebenbei auf der arbeit also kann es sein das ich mich mal
länger nicht melde. Danke für eure vielen Vorschläge. Es läuft
jetzt auch alles. Übrigens arbeite ich mit Office 2007, vielleicht
gibts da ja irgendwelche unterschiede
 
Aso was ich noch vergessen habe. Für die Lösung habe ich nicht ein
bestimmtes Datenblatt sondern nur das welches im Moment aktiviert ist genommen.
Hier mein Code:

Code:
 Dim zeile
        zeile = 2
        While ActiveSheet.Cells(zeile, 3) <> ""
         ActiveSheet.Cells(zeile, 3) = plant
         ActiveSheet.Cells(zeile, 4) = Tag
         zeile = zeile + 1
        Wend
 

Neue Beiträge

Zurück