Clever-Excel-Forum

Normale Version: Werte aus Textboxen an Tabelle
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

finde leider meine Fehler nicht und brauche Hilfe.

Ich lade aus Tabelle "Kürzel" Daten in UF "frm_Kürzel" in eine Listbox. Beim anklicken einer Zeile der Listbox werden die Werte in Textboxen eingelesen, soweit funktioniert alles.

Nun möchte ich die Werte aus den Textboxen in einen andere Tabelle übertragen und das bekomme ich nicht hin. Hier mein Code:
Code:
Private Sub cmd_Neu_Click()
Dim lng As Long

On Error Resume Next
  With Worksheets("Depot")
  lng = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Rows.Row
   Cells(lng, 1).Value = .TextBox1.Value
   Cells(lng, 2).Value = .TextBox2.Value
   Cells(lng, 3).Value = .TextBox3.Value
   Cells(lng, 4).Value = .TextBox4.Value
   Cells(lng, 5).Value = .TextBox5.Value
   Cells(lng, 6).Value = .TextBox6.Value
  End With
End Sub

Wo liegt mein Fehler?
Hallo Bernie,

mal aus dem Bauch geschossen, da ich ja eigentlich nicht mehr mit Excel mache. Entweder:
.Cells(lng, 1).Value = .TextBox1.Value
oder
Sheets("Tabelle2").Cells(lng, 1).Value = .TextBox1.Value

Gruß
Marcus
Hallo Bernie,

anstatt

Cells(lng, 1).Value = .TextBox1.Value

so

.Cells(lng, 1).Value = TextBox1.Value

denn der Punkt bezieht sich ja auf

With Worksheets("Depot")

Gruß Uwe
Hallo Uwe,

stimmt ... ich habe auf den "." vor Textbox nicht geachtet.

Gruß
Marcus
Hallo Marcus,

Erstmal recht♥lichen Glückwunsch nachträglich zum Geburtstag!!!!!!!!!

Leider funktioniert der Vorschlag nicht, ebenso der von wenig der Vorschlag von Uwe.

Ich hab das Gefühl, dass der Inhalt der Textboxen nicht erkannt wird, da ich sie bei click aus der Listbox einlese.

Deshalb hier der gesamte Code:
Code:
Private Sub UserForm_Initialize()
  Dim tbl_Kürzel As Worksheet
  
  Set tbl_Kürzel = Worksheets("Kürzel")
  
  With frm_Kürzel
    .Label1.Caption = tbl_Kürzel.Cells(1, 1).Value
    .Label2.Caption = tbl_Kürzel.Cells(1, 2).Value
    .Label3.Caption = tbl_Kürzel.Cells(1, 3).Value
    .Label4.Caption = tbl_Kürzel.Cells(1, 4).Value
    .Label5.Caption = tbl_Kürzel.Cells(1, 5).Value
    .Label6.Caption = tbl_Kürzel.Cells(1, 6).Value
    .ListBox1.List = tbl_Kürzel.Range("A2:F141").Value
    .ListBox1.ColumnCount = 6
    .ListBox1.ColumnWidths = "70;120;200;70;140;60"
    .TextBox1.SetFocus
  End With
  
  frm_Kürzel.Label7.Caption = frm_Kürzel.Label1.Caption
  frm_Kürzel.Label8.Caption = frm_Kürzel.Label2.Caption
  frm_Kürzel.Label9.Caption = frm_Kürzel.Label3.Caption
  frm_Kürzel.Label10.Caption = frm_Kürzel.Label4.Caption
  frm_Kürzel.Label11.Caption = frm_Kürzel.Label5.Caption
  frm_Kürzel.Label12.Caption = frm_Kürzel.Label6.Caption

End Sub

Private Sub ListBox1_Click()
'Dim lng As Integer

  Sheets("Kürzel").Activate
    'lng = frm_Kürzel.ListBox1.Column(6)
  With frm_Kürzel
    TextBox1.Value = Cells(2, 1).Value
    TextBox2.Value = Cells(2, 2).Value
    TextBox3.Value = Cells(2, 3).Value
    TextBox4.Value = Cells(2, 4).Value
    TextBox5.Value = Cells(2, 5).Value
    TextBox6.Value = Cells(2, 6).Value
  End With
End Sub

Private Sub cmd_Neu_Click()
Dim lng As Long

On Error Resume Next
  With Worksheets("Depot")
  lng = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Rows.Row
   .Cells(lng, 1).Value = TextBox1.Value
   .Cells(lng, 2).Value = TextBox2.Value
   .Cells(lng, 3).Value = TextBox3.Value
   .Cells(lng, 4).Value = TextBox4.Value
   .Cells(lng, 5).Value = TextBox5.Value
   .Cells(lng, 6).Value = TextBox6.Value
  End With
End Sub
Hallo,

IMHO fehlt hier

Code:
With frm_Kürzel
    TextBox1.Value = Cells(2, 1).Value
    TextBox2.Value = Cells(2, 2).Value
    TextBox3.Value = Cells(2, 3).Value
    TextBox4.Value = Cells(2, 4).Value
    TextBox5.Value = Cells(2, 5).Value
    TextBox6.Value = Cells(2, 6).Value
  End With

noch der Tabellennamen vor den Cells. Und warum verwendest Du hier With wenn Du vor den Textboxen keinen Punkt setzt?
Hallo Bernie,

das hatte ich ganz übersehen, dass ja hier der Punkt auch fehlt:

lng = .Cells(Rows.Count, 1).End(xlUp).Row + 1

Gruß Uwe
Hallo zusammen,

leider komme ich nicht weiter, da keine der Vorschläge funktioniert hat und ich nicht weiss, ob noch woanders ein Fehler existiert.

Es sollte so funktionieren, erst in Listbox klicken um die Textboxen zu füllen, auf Button "Aktie ins Depot" klicken und Werte der Textboxen sollen ins Blatt "Depot" in die erste frei Zeile eingefügt werden. Ich hoffe, ich konnte mich klar ausdrücken und bedanke mich schon mal im Voraus.
Hallo,

teste mal

Code:
Private Sub ListBox1_Click()
'Dim lng As Integer

  Sheets("Kürzel").Activate
    'lng = frm_Kürzel.ListBox1.Column(6)
  With frm_Kürzel
  
    .TextBox1.Value = .ListBox1.List(ListBox1.ListIndex, 0)
    .TextBox2.Value = .ListBox1.List(ListBox1.ListIndex, 1)
    .TextBox3.Value = .ListBox1.List(ListBox1.ListIndex, 2)
    .TextBox4.Value = .ListBox1.List(ListBox1.ListIndex, 3)
    .TextBox5.Value = .ListBox1.List(ListBox1.ListIndex, 4)
    .TextBox6.Value = .ListBox1.List(ListBox1.ListIndex, 5)
  End With
End Sub

Private Sub cmd_Neu_Click()
Dim lng As Long

On Error Resume Next
  With Worksheets("Depot")
  lng = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
   .Cells(lng, 1).Value = TextBox1.Value
   .Cells(lng, 2).Value = TextBox2.Value
   .Cells(lng, 3).Value = TextBox3.Value
   .Cells(lng, 4).Value = TextBox4.Value
   .Cells(lng, 5).Value = TextBox5.Value
   .Cells(lng, 6).Value = TextBox6.Value
  End With
End Sub
Hallo Bernie,

warum fragst Du eigentlich, wenn Du die Fehlerberichtigungen gar nicht übernimmst
und dann behauptest, das diese alle nicht weiterhelfen??!!

Gruß Uwe
Seiten: 1 2