Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Eintrag in nächste leere Zeile oder Überschreiben

Eintrag in nächste leere Zeile oder Überschreiben
23.07.2016 13:37:08
Gerwin
Hallo Zusammen,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eintrag in nächste leere Zeile oder Überschreiben
23.07.2016 13:48:55
Daniel
Hi
im Prinzip so:
    ....
LZeile = 2
Do While Trim(CStr(Cells(lZeile, 1).Value))  ""
If TB1.Text = Trim(CStr(Cells(lZeile, 1).Value)) Then Exit Do
Zeile = Zeile + 1
Loop
'Eintrag gefunden, TextBoxen in die Zellen schreiben
Cells(lZeile, 1).Value = Trim(CStr(TB1.Text))
Cells(lZeile, 2).Value = TB2.Text
usw dann für alle anderen Textboxen
End Sub

AW: Eintrag in nächste leere Zeile oder Überschreiben
23.07.2016 20:20:02
Gerwin
Hallo Daniel,
danke für deine Antwort. Entschuldige die doppelte Frage, wie gesagt aktualisiert, doppelt gesendet, verpeilter Mensch.
Also ich hab deinen Code implementiert, aber irgendwie hängt sich mein excel dann auf beim ausführen. Hängt wohl in der Schleife fest. Unten der Code nochmal sauber, hab ich das so richtig gemacht?

Private Sub CommandButton9_Click()
Dim lZeile As Long
If Trim(CStr(TB1.Text)) = "" Then
MsgBox "Sie müssen ein Aktenzeichen eingeben!", vbCritical + vbOKOnly, "FEHLER!"
Exit Sub
End If
lZeile = 2
Do While Trim(CStr(Cells(lZeile, 1).Value))  ""
If TB1.Text = Trim(CStr(Cells(lZeile, 1).Value)) Then Exit Do
Zeile = Zeile + 1
Loop
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
lZeile = lZeile + 1
End Sub

Anzeige

339 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige