With Tabelle3 '(Kostenübersicht) --> Es erfolgt eine Fehleranzeige, wenn ich mit With versuche zu arbeiten; Tabelle3 als Variable nicht definiert
und
letzteZeile = ThisWorkbook.Sheets(Tabelle3).Cells(Rows.Count, 2).End(xlUp).Row 'Laufzeitfehler 9: Index außerhalb des Bereichs --> vor dem Ausführen mit F8: letzteZeile=0, Rows.Count 1048576, xlUp= -4162
Tabelle3 ... so blank hingeschrieben wie du es getan hast, ist das was ich im Screenshot gelb markiert habe. Das ist der Codename eines Tabellenblattes. Wenn es nicht existiert, kommt dein besagter Fehler.
Der Orange/Rote markierte Teil ist der Blattname, welchen du in Excel unten als Reiter/Lasche siehst und auch dort umbenennen kannst.
With Worksheets("Tabellenblattname3")
'...
End With
Grundsätzlich, bevor du irgendetwas anderes tust.
Gehe im VBA-Editor unter Extras » Optionen ... Haken bei "Editor": "Variablendeklaration erforderlich" setzen.
Von diesem Zeitpunkt an, wird jedesmal wenn du ein neues Modul oder Klassenmodul erstellst, in die oberste Zeile automatisch ein Option Explicit geschrieben. Es zwingt dich dazu alle Variablen vor ihrem Gebrauch zu deklarieren (Dim bzw. ReDim). Tust du das nicht, wird es dir per Meldung um die Ohren geworfen.
Es hilft u.a. dabei auf Tippfehler aufmerksam gemacht zu werden und ist generell dein bester Freund - die Sorte von Freund, welcher dir in deinen gottverdammten Arsch tritt, falls du nur vor dich hin gammelst oder unkluge Entscheidungen triffst.
PS: Noch kurz als Ergänzung zu Schleifen (allgemein).
Schleifen sind nicht böse. Was böse sein kann ist, was in solchen Schleifen getan wird. Wer schlampig ineffizienten Code schreibt und der dann auch noch in einer Schleife steht wo er mehrmals aufgerufen wird, darf sich nicht wundern das es langsam läuft. Daran trennt sich die Spreu vom Weizen. Schleifen sind supi; sie sind eines der Grundpfeiler einer jeden Programmiersprache.
|