ich habe in Excel einen Jahreskalender, den ich für die Urlaubsplanung nutze. Nun habe ich das Problem, dass ich zwischendrin mal eine Zeile einfügen muss um diesen zu erweitern. Es gibt insgesamt 15 Tabellenblätter.Ich möchte im Tabellenblatt Jan eine Zeile markieren und mit einem Klick auf einen Commandbutton soll nun eine leere Zeile unterhalb der markierten Zeile eingefügt werden. Weiterhin soll diese Zeile in weitere 12 Tabellenblätter eingefügt werden. Alle Tabellenblätter sind mit Formeln ausgestattet die sich teilweise auf das Blatt Jan bezien. Die Tabellen müßten sich natürlich auch nach unten hin aktualisieren.Das ganze soll mit einem zweiten Button auch andersrum funktionieren dh. es soll die markierte Zeile im Blatt Jan gelöscht werden und in den weiteren 12 blättern ebenfals. Auch hier sollten sich die Formeln dann anpassen.
Leider bin ich in VBA noch nicht so fit kann mir Jemand helfen?
Habe zwar schon lange nichts mehr in VBA programmiert, aber denke es sollte so gehen:
'Button Zeile\_Einfügen\_CmdButton wurde geklickt
Private Sub Zeile\_Einfügen\_CmdButtonClick()
'ermitteln der aktivierten Zeile:
'erste Zelle des selektierten Bereichs wird gesucht: Bsp: $C$25
Zellen\_Name = ActiveCell.Rows.Address
'nun den Namen aufteilen in Spalte und Zeile
'Spalte\_Zeile(0) = leer, Spalte\_Zeile(1) = Spalte als Buchstabe, Spalte\_Zeile(2) = Zeile asl Zahl
spalte\_Zeile = Split(Zellen\_Name, "$")
'Unterhalb der gefunden Zeile eine Zeile einfügen (deshalb +1)
'Die anderen Zeilen werden automatisch nach unten geschoben
'Falls die Zeilen nicht fix mit $Spalte$Zeile festgelegt sind, ändern sich dir Verknüfungen automatisch
ThisWorkbook.Worksheets("Tabelle1").Rows(spalte\_Zeile(2) + 1).Insert
'Jetzt an der selben Stelle in den anderen Blättern die Zeile einfügen:
ThisWorkbook.Worksheets("Tabelle2").Rows(spalte\_Zeile(2) + 1).Insert
ThisWorkbook.Worksheets("Tabelle3").Rows(spalte\_Zeile(2) + 1).Insert
....
'Kannst die einzelnen Blätter auch per Index ansprechen:
'For i = 0 To 12
'ThisWorkbook.Worksheets(i).Rows(spalte\_Zeile(2) + 1).Insert
'Next
End Sub
'Button Zeile\_Löschen\_CmdButton wurde geklickt
Private Sub Zeile\_Löschen\_CmdButtton\_Click()
'ermitteln der aktivierten Zeile:
'erste Zelle des selektierten Bereichs wird gesucht: Bsp: $C$25
Zellen\_Name = ActiveCell.Rows.Address
'nun den Namen aufteilen in Spalte und Zeile
'Spalte\_Zeile(0) = leer, Spalte\_Zeile(1) = Spalte als Buchstabe, Spalte\_Zeile(2) = Zeile asl Zahl
spalte\_Zeile = Split(Zellen\_Name, "$")
'die selektieren Spalten in allen Blättern löschen
'Die anderen Zeilen werden automatisch nach unten geschoben
'Falls die Zeilen nicht fix mit $Spalte$Zeile festgelegt sind, ändern sich dir Verknüfungen automatisch
ThisWorkbook.Worksheets("Tabelle1").Rows(spalte\_Zeile(2)).Delete
ThisWorkbook.Worksheets("Tabelle2").Rows(spalte\_Zeile(2)).Delete
ThisWorkbook.Worksheets("Tabelle3").Rows(spalte\_Zeile(2)).Delete
...
'Kannst die einzelnen Blätter auch per Index ansprechen:
'For i = 0 To 12
' ThisWorkbook.Worksheets(i).Rows(spalte\_Zeile(2)).Delete
'Next
End Sub