gerdschmidtke
Grünschnabel
Hallo. Ich habe ein kleines Problem in Visual Basic (VBA). Ich programmiere gerade für EXCEL eine Eingaberoutine. Dort ist auch eine Funktion enthalten, die Tabellenblätter löscht. So weit funktioniert auch alles gut. Alle Tabellenblätter habe ich in einem versteckten Tabellenblatt mit dem Namen "Konstanten" gespeichert.
Nun möchte ich eine Routine schreiben, die beim Löschen eines Tabellenblattes den Eintrag aus dem Tabellenblatt "Konstanten" löscht und die nachfolgenden Einträge um jeweils eine Zelle nach oben kopiert.
Ich habe die Gesamteinträge auf 20000 festgelegt. Die Routine steht zwar schon, aber beim Testlauf wird immer ein Fehler angezeigt: Laufzeitfehler 9: "Index außerhalb des gültigen Bereichs"
Ich schaue mir schon den Programmcode an, aber ich weiss nicht mehr weiter. Vielleicht kann mir jemand helfen. Hier ist der Programmcode: In der Variablen "titel" steht das zu löschende Tabellenblatt.
For i = 2 To 20000
If Worksheets("Konstanten").Cells(i, 1) = titel Then
Worksheets("Konstanten").Cells(i, 1) = ""
For j = i To 20000
If Worksheets("Konstanten").Cells(j + 1, 1) = "" Then
Exit For
Else
Worksheets("Konstanten").Cells(j, 1) = Worksheets("Kontanten").Cells((j + 1), 1)
End If
Next j
Exit For
End If
Next i
Bitte helft mir.
Vielen Dank im voraus.
Nun möchte ich eine Routine schreiben, die beim Löschen eines Tabellenblattes den Eintrag aus dem Tabellenblatt "Konstanten" löscht und die nachfolgenden Einträge um jeweils eine Zelle nach oben kopiert.
Ich habe die Gesamteinträge auf 20000 festgelegt. Die Routine steht zwar schon, aber beim Testlauf wird immer ein Fehler angezeigt: Laufzeitfehler 9: "Index außerhalb des gültigen Bereichs"
Ich schaue mir schon den Programmcode an, aber ich weiss nicht mehr weiter. Vielleicht kann mir jemand helfen. Hier ist der Programmcode: In der Variablen "titel" steht das zu löschende Tabellenblatt.
For i = 2 To 20000
If Worksheets("Konstanten").Cells(i, 1) = titel Then
Worksheets("Konstanten").Cells(i, 1) = ""
For j = i To 20000
If Worksheets("Konstanten").Cells(j + 1, 1) = "" Then
Exit For
Else
Worksheets("Konstanten").Cells(j, 1) = Worksheets("Kontanten").Cells((j + 1), 1)
End If
Next j
Exit For
End If
Next i
Bitte helft mir.
Vielen Dank im voraus.