Hallo Zusammen,
aktuell bin ich dabei ein System für meine Kundendaten zu bauen und verwende hierfür eine UserForm, leider ist es so das wenn ich einen Eintrag lösche und danach einen neuen Erstellen will das ich manche Zahlen (Kunden) mehrmals drin habe z.B. Ich Lösche Kunde 3 und erstelle einen neuen Eintrag und habe dann Kunde 11 drei mal drin,
wie kann ich das lösen das er bevor einen neuen Kunden anlegt prüft, ob z.B. Kunde 3 vorhanden ist und wenn nicht er diesen erstellt anstatt bei Kunde 11 weiter zu machen,
ich hoffe ihr versteht was ich meine.
Hier der Code:
vielleicht den Code für Löschen auch noch mal, da er wenn ich Kunde 3 lösche, er auf einmal Kunde 17 zwei mal drin hat.
aktuell bin ich dabei ein System für meine Kundendaten zu bauen und verwende hierfür eine UserForm, leider ist es so das wenn ich einen Eintrag lösche und danach einen neuen Erstellen will das ich manche Zahlen (Kunden) mehrmals drin habe z.B. Ich Lösche Kunde 3 und erstelle einen neuen Eintrag und habe dann Kunde 11 drei mal drin,
wie kann ich das lösen das er bevor einen neuen Kunden anlegt prüft, ob z.B. Kunde 3 vorhanden ist und wenn nicht er diesen erstellt anstatt bei Kunde 11 weiter zu machen,
ich hoffe ihr versteht was ich meine.
Hier der Code:
Code:
'Neuer Eintrag Schaltfläche Ereignisroutine
Private Sub Kunden_Eintragen_Click()
Dim lZeile As Long
Workbooks.Open Filename:="C:\Users\User\Desktop\Kunden_Datenbank.xlsx"
'With Workbooks("Kunden_Datenbank.xlsx").Sheets("Kundendaten")
'Set wks = Worksheets("Kundendaten")
lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die überschriftrn
Do While Trim(CStr(Worksheets("Kundendaten").Cells(lZeile, 1).Value)) <> ""
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
Worksheets("Kundendaten").Cells(lZeile, 1) = CStr("Kunde " & lZeile)
'With wks(Rows.Count, 1).End(xlUp)
'.AutoFill .Resize(2), Type:=xlFillDefault
'ListBox1.AddItem .Offset(1).Value
'End With
Worksheets("Kundendaten").Cells(lZeile, 1) = CStr("Kunde " & lZeile - 1)
Kunden_ListBox1.AddItem CStr("Kunde " & lZeile)
Kunden_ListBox1.ListIndex = Kunden_ListBox1.ListCount - 1
End Sub
vielleicht den Code für Löschen auch noch mal, da er wenn ich Kunde 3 lösche, er auf einmal Kunde 17 zwei mal drin hat.
Code:
Private Sub Kunden_Loeschen_Click()
Dim lZeile As Long
If MsgBox( _
prompt:="Löschen?", _
Buttons:=vbQuestion + vbYesNo _
) = vbNo Then Exit Sub
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
If Kunden_ListBox1.ListIndex = -1 Then Exit Sub
'Zum Löschen benötigen wir die Zeilennummer des ausgewählten Datensatzes
lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
Workbooks.Open Filename:="C:\Users\User\Desktop\Kunden_Datenbank.xlsx"
Do While Trim(CStr(Worksheets("Kundendaten").Cells(lZeile, 1).Value)) <> ""
'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen
If Kunden_ListBox1.Text = Trim(CStr(Worksheets("Kundendaten").Cells(lZeile, 1).Value)) Then
'Eintrag gefunden, die ganze Zeile wird nun gelöscht
Worksheets("Kundendaten").Rows(CStr(lZeile & ":" & lZeile)).Delete
'Die ListBox muss nun neu geladen werden!
Call UserForm_Initialize
If Kunden_ListBox1.ListCount > 0 Then Kunden_ListBox1.ListIndex = 0
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
End Sub