ich bastele grade an einer Datenbank in meinem geliebten Excel und hänge grade bisschen fest und hoffe, dass Ihr mir helfen könnt.
Das unten aufgeführte Makro stammt im Orginal von http://online-vba.de/vba_tutorialuserform.php
Ich habe es für meine Bedürfnisse umfunktioniert, da ich auch ohne ListBox arbeite. Ich habe die Orginalstellen die ich nicht benötige auskommentiert, hoffe das verwirrt nicht.
Mein Problem ist nun folgendes. Das Makro ändert gegenwärtig einen bestehenden Datensatz. Ich Möchte dieses aber auch verwenden um einen neuen Datensatz anzulegen. Sprich wenn er den Inhalt aus TB1(TextBox1) in Spalte A des Tabellenblattes nicht findet soll er in die nächste freie Zeile einen neuen Datensatz anlegen.
Vielleicht liegt es auch daran das ich seit 7 Uhr programmiere (basteln triffts eher) und jetzt nicht mehr klar denken kann.
Freue mich von euch zu hören
LG
Euer Gerwin
Private Sub CommandButton9_Click()
Dim lZeile As Long
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
' If ListBox1.ListIndex = -1 Then Exit Sub
'Wir müssen prüfen, ob die ID Spalte auch gefüllt ist!!
If Trim(CStr(TB1.Text)) = "" Then
'Meldung ausgeben
MsgBox "Sie müssen ein Aktenzeichen eingeben!", vbCritical + vbOKOnly, "FEHLER!"
'Abbrechen des Speicherroutine
Exit Sub
End If
'Ausbauoption: Prüfen ob die ID in Tabelle1 Spalte 1 schon vorhanden ist!
'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriftrn
'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
Do While Trim(CStr(Cells(lZeile, 1).Value)) ""
'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen
If TB1.Text = Trim(CStr(Cells(lZeile, 1).Value)) Then
'Eintrag gefunden, TextBoxen in die Zellen schreiben
Cells(lZeile, 1).Value = Trim(CStr(TB1.Text))
Cells(lZeile, 2).Value = TB2.Text
Cells(lZeile, 3).Value = TB3.Text
Cells(lZeile, 4).Value = TB4.Text
Cells(lZeile, 5).Value = TB5.Text
Cells(lZeile, 6).Value = TB6.Text
Cells(lZeile, 7).Value = TB7.Text
Cells(lZeile, 8).Value = TB8.Text
Cells(lZeile, 9).Value = TB9.Text
Cells(lZeile, 10).Value = TB10.Text
Cells(lZeile, 11).Value = TB11.Text
Cells(lZeile, 12).Value = TB12.Text
Cells(lZeile, 13).Value = TB13.Text
Cells(lZeile, 14).Value = TB14.Text
Cells(lZeile, 15).Value = TB15.Text
Cells(lZeile, 16).Value = TB16.Text
Cells(lZeile, 17).Value = TB17.Text
Cells(lZeile, 18).Value = TB18.Text
Cells(lZeile, 19).Value = TB19.Text
Cells(lZeile, 20).Value = TB20.Text
Cells(lZeile, 21).Value = TB21.Text
Cells(lZeile, 22).Value = TB22.Text
Cells(lZeile, 23).Value = TB23.Text
Cells(lZeile, 24).Value = TB24.Text
Cells(lZeile, 25).Value = TB25.Text
Cells(lZeile, 26).Value = TB26.Text
Cells(lZeile, 27).Value = TB27.Text
Cells(lZeile, 28).Value = TB28.Text
Cells(lZeile, 32).Value = TB32.Text
Cells(lZeile, 33).Value = TB33.Text
Cells(lZeile, 34).Value = TB34.Text
Cells(lZeile, 35).Value = TB35.Text
Cells(lZeile, 36).Value = TB36.Text
Cells(lZeile, 37).Value = TB37.Text
Cells(lZeile, 38).Value = TB38.Text
Cells(lZeile, 39).Value = TB39.Text
Cells(lZeile, 43).Value = TB43.Text
Cells(lZeile, 44).Value = TB44.Text
Cells(lZeile, 45).Value = TB45.Text
Cells(lZeile, 46).Value = TB46.Text
Cells(lZeile, 47).Value = TB47.Text
Cells(lZeile, 48).Value = TB48.Text
Cells(lZeile, 49).Value = TB49.Text
Cells(lZeile, 50).Value = TB50.Text
Cells(lZeile, 54).Value = TB54.Text
Cells(lZeile, 55).Value = TB55.Text
Cells(lZeile, 56).Value = TB56.Text
Cells(lZeile, 57).Value = TB57.Text
Cells(lZeile, 58).Value = TB58.Text
Cells(lZeile, 59).Value = TB59.Text
Cells(lZeile, 60).Value = TB60.Text
Cells(lZeile, 61).Value = TB61.Text
Cells(lZeile, 65).Value = TB65.Text
Cells(lZeile, 66).Value = TB66.Text
Cells(lZeile, 67).Value = TB67.Text
Cells(lZeile, 68).Value = TB68.Text
Cells(lZeile, 69).Value = TB69.Text
Cells(lZeile, 70).Value = TB70.Text
Cells(lZeile, 71).Value = TB71.Text
Cells(lZeile, 72).Value = TB72.Text
Cells(lZeile, 76).Value = TB76.Text
Cells(lZeile, 77).Value = TB77.Text
Cells(lZeile, 78).Value = TB78.Text
Cells(lZeile, 79).Value = TB79.Text
Cells(lZeile, 80).Value = TB80.Text
Cells(lZeile, 81).Value = TB81.Text
Cells(lZeile, 82).Value = TB82.Text
Cells(lZeile, 83).Value = TB83.Text
Cells(lZeile, 87).Value = TB87.Text
Cells(lZeile, 88).Value = TB88.Text
Cells(lZeile, 89).Value = TB89.Text
Cells(lZeile, 90).Value = TB90.Text
Cells(lZeile, 91).Value = TB91.Text
Cells(lZeile, 92).Value = TB92.Text
Cells(lZeile, 93).Value = TB93.Text
Cells(lZeile, 94).Value = TB94.Text
Cells(lZeile, 98).Value = TB98.Text
Cells(lZeile, 99).Value = TB99.Text
'Die ListBox muss nun neu geladen werden
'allerdings nur wenn sich der Name (ID) geändert hat
' If ListBox1.Text Trim(CStr(TextBox1.Text)) Then
' Call UserForm_Initialize
' If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
' End If
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
End Sub