derparte
Goto Top

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

Content-Key: 74794

Url: https://administrator.de/contentid/74794

Printed on: April 19, 2024 at 18:04 o'clock

Member: wakko
wakko Nov 29, 2007 at 10:54:35 (UTC)
Goto Top
Moin,
du schreibst ja auch immerm in die gleiche Zelle ;)
Cells(lastrow, i) = Me.TB_Mitgliedsnummer.Value
Cells(lastrow, i) = Me.TB_Name.Value
Innerhalb der for-Schleife hat i da immer den gleichen Wert.
Müßte also jeweils
Cells(lastrow, 1) = Me.TB_Mitgliedsnummer.Value
Cells(lastrow, 2) = Me.TB_Name.Value
Cells(lastrow, 3) = Me.TB_Straße.Value
sein
Die for-Schleife kannst du weg lassen.

MfG,
Henrik
Member: DerParte
DerParte Nov 29, 2007 at 16:49:51 (UTC)
Goto Top
Jo, vielen Dank hat funktioniert.

Kann man auch für Benutzernummer einen Autozähler einfügen? Wie müsste das dann aussehen?

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?
Member: wakko
wakko Nov 30, 2007 at 10:25:28 (UTC)
Goto Top
Moin,
Kann man auch für Benutzernummer einen
Autozähler einfügen? Wie
müsste das dann aussehen?
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?

Tut mir leid, ich verstehe nicht ganz, was du da möchtest...
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
Vielleicht sowas?

MfG