ich habe auf einer userform eine Listbox und möchte immer unter dem aktuell markierten Datensatz, einen neuen einfügen.
Folgenden Code habe ich zusammengebsatelt:
Private Sub Button_new_Click() 'Beim anklicken des Button new in userform wird folgender Code ausgeführt
On Error GoTo Fehlermeldung 'Wenn eine Fehlermeldung auftritt, nach unten springen und Code übergehen
Dim b As Long, d As Long, e As Long, c As Long
d = Me.ListBox1.ListIndex
b = (Me.ListBox1.List(d, 0) * 1) + 2 'Zeilennummer
c = (Me.ListBox1.List(d, 0) * 1) - 2 'Zeilennummer -2
e = Application.WorksheetFunction.Max(Tabelle2.Columns(1)) + 1 'Maximalwert der Spalte 1 in Tabelle2 +1 als Variable definieren
Tabelle2.Rows(b & ":" & b).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'Einfügen einer Zeile unter der Makierung
Tabelle2.Cells(b, 1) = e 'Einfügen von Beispielwerten für den neuen Datensatz
Tabelle2.Cells(b, 2) = "blau" 'Einfügen von Beispielwerten für den neuen Datensatz
Tabelle2.Cells(b, 23) = "1" 'Einfügen von Beispielwerten für den neuen Datensatz
Tabelle2.Cells(b, 24) = "d" 'Einfügen von Beispielwerten für den neuen Datensatz
Tabelle2.Cells(b, 25) = "Quadrat" 'Einfügen von Beispielwerten für den neuen Datensatz
Tabelle2.Cells(b, 26) = "01.01.2026" 'Einfügen von Beispielwerten für den neuen Datensatz
Tabelle2.Cells(b, 27) = e 'Den Maximalwert+1 in der Spalte übernehmen
ListBox1.Clear 'Alle Listboxeinträge entfernen
UserForm_Initialize 'Aufruf des Initialize Ereignis
Me.ListBox1.Selected(c) = True 'Auswahl des Listboxeintrags der angezeigt werden soll
Exit Sub
Fehlermeldung:
MsgBox ("Please choose one") 'Wenn eine Fehlermeldung auftritt, öffnet sich eine Messagebox mit dem in "" stehenden Inhalt
End Sub
Anbei hierzu auch meine Beispieldatei: https://www.herber.de/bbs/user/148201.xlsm
Mein Problem: Füge ich bspw. bei Datensatz 3 ein, funktioniert alles wie geplant. Füge ich allerdings bei 50,57,60 ein, wird die eingefügte Zeile nicht immer über der gewünschten eingefügt.
Hängt dies mit meinen Variablen zusammen? Müssen die irgendwie zurückgesetzt werden? Bin für jeden Hinweis sehr dankbar!
Viele Grüße
Thomas