Änderungen speichern über Userform
23.12.2025 09:30:10
Leolo
Ich bin dabei eine kleine Datenbank zur Aktenverwaltung mit Excel zu erstellen. Ich habe erst angefangen mich mit VBA zu beschäftigen, und mir meine bisherigen Codes eher zusammengesucht. Meine Kenntnisse sind daher sehr gering.
Ich habe eine Userform mit verschiedenen Textboxen zur Datenerfassung. Zum Bearbeiten von Datensätzen habe ich eine weitere Userform mit Suchfunktion (nach einmalig vergebenem Aktenzeichen aus Spalte Q bzw. 17), die mir dann eine Trefferliste anzeigt, welche ich dann entsprechend bearbeiten kann. Mein Code zum Änderungen speichern stimmt leider nicht, da der geänderte Datensatz immer in einer Zelle nach dem letzten Datensatz aufgeführt wird, und nicht den bereits bereits bestehenden Datensatz in dieser Zeile überschreibt/ändert.
Vielleicht kann mir jemand von euch helfen, vielen Dank bereits im Voraus und liebe Grüße!
---
Das Problem scheint an der Zeile i = i + 1 zu liegen. Wenn ich diese aber rausnehme, speichert es gar nichts ab und das Programm hängt sich auf.
Hier mein Modul für die Trefferzeile:
Public Function TrefferZeileNeu(blatt As Worksheet, StartZeile As Integer, StartSpalte As Integer, treffer As MSForms.ComboBox) As Integer
'zugehöriges Tabellenblatt aktivieren
blatt.Activate
'Variablen definieren
Dim i As Integer
'Variablen Werte zuweigen
i = StartZeile
Do While Cells(i, StartSpalte).Value > ""
If Cells(i, StartSpalte).Value = treffer Then
'Treffer
Exit Do
Else
'Kein Treffer
End If
i = i + 1
Loop
TrefferZeileNeu = i
End Function
----
Meine Userform sieht dann so aus:
Private Sub CB_ÄnderungenSpeichern_Click()
Dim i As Integer
Dim OrtderEinlagerung As String
Dim Eingelagertdurch As String
i = TrefferZeileNeu(Sheets("Datenbank"), 11, 2, Me.ComboBoxTreffer)
OrtderEinlagerung = Me.TextBoxOrtderEinlagerung.Text
Eingelagertdurch = Me.TextBoxEingelagertdurch.Text
'Werte in das Tabellenblatt eintragen
Cells(i, 4).Value = OrtderEinlagerung
Cells(i, 5).Value = Eingelagertdurch
MsgBox "Die Änderungen wurden gespeichert!", vbInformation, "Erfolg"
Unload Me
End Sub
Anzeige