Hallo zusammen,
ich bin ein VBA-Anfänger und ich möchte über einen CommandButton an einer bestimmten Stelle eine Zeile einfügen, z. B. an A22. Dazu sollen, wie das Excel so macht, die vorhandenen Werte in A22, A23 sowie die jeweiligs zugehörige Schaltfläche (Löschen-Button, der diese Zeile bei Klick komplett entfernen soll) eine Zeile weiter nach unten übertragen werden. Auch soll der Klick in der neuen zeile eine neue Schaltfläche erzeugen. Das klappt soweit alles.
Mein Problem besteht nun darin, dass die verschobenen Schaltflächen mit Ihren Positionsangaben nicht eine Zeile weiter wandern, sondern die Werte am Erstellungsort verbleiben. Damit löscht jede Schaltfläche immer die unterste der Zeilen und nicht die, in der sich die Schaltfläche befindet. Es fehlt mit irgendwie die (Neu-)Zuordnung Schaltfläche zu Zeile.
Der Klick auf den CommandButton (Auszug) macht folgendes:
Sub Eingabe_übertragen()
Dim B As Button
Rows("22:22").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
' Erzeugt Löschen-Button
Set B = Sheets("Urlaubsantrag").Buttons.Add(495.75, 246, 77.25, 15)
With B
.Name = "Button"
.Left = Cells(22, 15).Left
.Top = Cells(22, 15).Top
.Characters.Text = "Löschen"
.Font.Name = "Calibri"
.Font.FontStyle = "Standard"
.Font.Size = 8
.OnAction = "Modul1.Zeile_loeschen"
.PrintObject = False
End With
Range("B15").Select
Selection.Copy
Range("B22").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D15").Select
Application.CutCopyMode = False
Selection.Copy
Range("D22").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Ich würde mich sehr über Unterstützung freuen, evtl. ist der Ansatz auch Käse?! Danke schon mal.
|