UserForm Fomular überträgt Daten nicht richtig in Tabelle.
Hallo zusammen,
ich möchte in Excel mittels Makros aus einem UserForm Formular Daten in ein Tabellenblatt übertragen. Es funktioniert auch fast.
Excel/VBA schreibt jedoch immer nur den letzten Wert in alle Zellen anstatt die verschiedenen Werte in die jeweilige Zelle.
Quelltext sieht so aus:
Private Sub CmdB_MitgliedAnlegen_Click()
Dim lastrow, i As Integer
Worksheets("Vereinsmitglieder").Activate
' Letzte Zeile suchen
lastrow = [a65536].End(xlUp).Row + 1
' Daten aus der Mitglied_Anlegen übertragen
For i = 1 To 8
Cells(lastrow, i) = Me.TB_Mitgliedsnummer.Value
Cells(lastrow, i) = Me.TB_Name.Value
Cells(lastrow, i) = Me.TB_Straße.Value
Cells(lastrow, i) = Me.TB_PLZ.Value
Cells(lastrow, i) = Me.TB_Ort.Value
Cells(lastrow, i) = Me.TB_DatumAnmeldung.Value
Cells(lastrow, i) = Me.TB_Kaution.Value
Cells(lastrow, i) = Me.TB_DatumBeitrag.Value
Next i
' Datenfelder löschen
With Me
.TB_Mitgliedsnummer.Value = ""
.TB_Name.Value = ""
.TB_Straße.Value = ""
.TB_PLZ.Value = ""
.TB_Ort.Value = ""
.TB_DatumAnmeldung.Value = ""
.TB_Kaution.Value = ""
.TB_DatumBeitrag.Value = ""
End With
End Sub
ich möchte in Excel mittels Makros aus einem UserForm Formular Daten in ein Tabellenblatt übertragen. Es funktioniert auch fast.
Excel/VBA schreibt jedoch immer nur den letzten Wert in alle Zellen anstatt die verschiedenen Werte in die jeweilige Zelle.
Quelltext sieht so aus:
Private Sub CmdB_MitgliedAnlegen_Click()
Dim lastrow, i As Integer
Worksheets("Vereinsmitglieder").Activate
' Letzte Zeile suchen
lastrow = [a65536].End(xlUp).Row + 1
' Daten aus der Mitglied_Anlegen übertragen
For i = 1 To 8
Cells(lastrow, i) = Me.TB_Mitgliedsnummer.Value
Cells(lastrow, i) = Me.TB_Name.Value
Cells(lastrow, i) = Me.TB_Straße.Value
Cells(lastrow, i) = Me.TB_PLZ.Value
Cells(lastrow, i) = Me.TB_Ort.Value
Cells(lastrow, i) = Me.TB_DatumAnmeldung.Value
Cells(lastrow, i) = Me.TB_Kaution.Value
Cells(lastrow, i) = Me.TB_DatumBeitrag.Value
Next i
' Datenfelder löschen
With Me
.TB_Mitgliedsnummer.Value = ""
.TB_Name.Value = ""
.TB_Straße.Value = ""
.TB_PLZ.Value = ""
.TB_Ort.Value = ""
.TB_DatumAnmeldung.Value = ""
.TB_Kaution.Value = ""
.TB_DatumBeitrag.Value = ""
End With
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 74794
Url: https://administrator.de/forum/userform-fomular-uebertraegt-daten-nicht-richtig-in-tabelle-74794.html
Ausgedruckt am: 12.04.2025 um 14:04 Uhr
3 Kommentare
Neuester Kommentar
Moin,
du schreibst ja auch immerm in die gleiche Zelle ;)
Innerhalb der for-Schleife hat i da immer den gleichen Wert.
Müßte also jeweils
sein
Die for-Schleife kannst du weg lassen.
MfG,
Henrik
du schreibst ja auch immerm in die gleiche Zelle ;)
1
2
2
Cells(lastrow, i) = Me.TB_Mitgliedsnummer.Value
Cells(lastrow, i) = Me.TB_Name.Value
Müßte also jeweils
1
2
3
2
3
Cells(lastrow, 1) = Me.TB_Mitgliedsnummer.Value
Cells(lastrow, 2) = Me.TB_Name.Value
Cells(lastrow, 3) = Me.TB_Straße.Value
Die for-Schleife kannst du weg lassen.
MfG,
Henrik
Moin,
Tut mir leid, ich verstehe nicht ganz, was du da möchtest...
Vielleicht sowas?
MfG
Kann man auch für Benutzernummer einen
Autozähler einfügen? Wie
müsste das dann aussehen?
Autozähler einfügen? Wie
müsste das dann aussehen?
1
2
2
Dim autozaehler%
autozaehler = .Cells(lastrow, 1).value + 1
Und wenn ich eine Auswahl noch mit
einbringen möchte wie z.B.
Führerscheinvorgezeigt? Dann kommen zei
Optionsfelder, welche sich auf eine TextBox
beziehen.
Wenn Option A soll er in die Spalte 3
schreiben und bei Option B in Spalte C. Mit
einer IF Kann ich das machen oder mit select
aber wie mache ich das mit den variablen?
einbringen möchte wie z.B.
Führerscheinvorgezeigt? Dann kommen zei
Optionsfelder, welche sich auf eine TextBox
beziehen.
Wenn Option A soll er in die Spalte 3
schreiben und bei Option B in Spalte C. Mit
einer IF Kann ich das machen oder mit select
aber wie mache ich das mit den variablen?
Tut mir leid, ich verstehe nicht ganz, was du da möchtest...
1
2
3
4
5
6
2
3
4
5
6
If optA.Value Then
.cells(lastrow, 3) = "Führerschein vorgezeigt"
End If
If optB.Value Then
.cells(lastrow, 4) = "Führerschein nicht vorgezeigt"
End If
MfG