Das Clever-Excel-Forum.de - Treffen
... 14.-16. September 2018 im Allgäu ...

Werte aus Textboxen an Tabelle
#1
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?
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
to top
#2
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
to top
#3
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
to top
#4
Hallo Uwe,

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

Gruß
Marcus
to top
#5
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
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
to top
#6
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?
Gruß Stefan
Win 7 / Office 2007
to top
#7
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
to top
#8
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.


Angehängte Dateien
.xlsm   BK_Test.xlsm (Größe: 32,63 KB / Downloads: 8)
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
to top
#9
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
Gruß Stefan
Win 7 / Office 2007
[-] Folgende(r) 1 Benutzer sagt Danke an Steffl für diesen Beitrag:
  • Bernie
to top
#10
Hallo Bernie,

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

Gruß Uwe
to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste