Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1488to1492
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem mit Textübertrag aus Listbox

Problem mit Textübertrag aus Listbox
29.04.2016 13:29:51
Vic
Hallo zusammen,
ich komme gerade nicht weiter: Aus Userform2, Listbox1 (2 Spalten) wird die markierte Listboxzeile an Textbox1 und 2 übergeben. Mittels Button soll nun in die Quelltabelle für Listbox1 die Änderung geschrieben werden. Funktioniert für Spalte A, aber nicht für Spalte B. Der Code läuft ohne Fehlermeldung durch. Kann mir jemand sagen, wo hier der Fehler liegt?
'Beim Öffnen der Userform Listbox aus dem ausgeblendeten Sheet "Kataloge" befüllen
Private Sub UserForm_Initialize()
Dim Loletzte As Long
Loletzte = Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row + 1
With ListBox1
.ColumnCount = 2
.ColumnWidths = "2cm;4cm"
.ColumnHeads = True
ListBox1.RowSource = "Katalog!A2:B" & Loletzte
End With
End Sub
'Klick in Listbox übernimmt Werte in Textboxen
Private Sub ListBox1_Click()
UserForm2.TextBox1 = ListBox1.List(ListBox1.ListIndex, 0)
UserForm2.TextBox2 = ListBox1.List(ListBox1.ListIndex, 1)
End Sub
'Klick auf Ändern Button
Private Sub CommandButton5_Click()
Dim zZeile As Long
zZeile = UserForm2.ListBox1.ListIndex + 2
Tabelle2.Cells(zZeile, 1).Value = TextBox1.Value
Tabelle2.Cells(zZeile, 2).Value = TextBox2.Value
End Sub
'Button hinzufügen - Werte aus Textfeldern in Tabelle übernehmen
Private Sub CommandButton4_Click()
Dim Loletzte As Long
Loletzte = Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row + 1
With Tabelle2
.Cells(Loletzte, 1) = Me.TextBox1.Value
.Cells(Loletzte, 2) = Me.TextBox2.Value
End With
End Sub

Danke!
Vic

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Textübertrag aus Listbox
29.04.2016 14:00:30
ChrisL
Hi Vic
Für Rows.Count fehlt die Referenzierung aufs Tabellenblatt.
Private Sub CommandButton4_Click()
Dim Loletzte As Long
With Tabelle2
Loletzte = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(Loletzte, 1) = Me.TextBox1.Value
.Cells(Loletzte, 2) = Me.TextBox2.Value
End With
End Sub

Und hier der korrekte Code für das verlinkte Beispiel. In diesem Zusammenhang kannst du RowSource nicht verwenden.
Private Sub CommandButton3_Click()
With Worksheets("Tabelle1")
.Cells(ListBox1.ListIndex + 1, 1).Value = ComboBox1
.Cells(ListBox1.ListIndex + 1, 2).Value = ComboBox2
.Cells(ListBox1.ListIndex + 1, 3).Value = CDbl(TextBox1.Value)
End With
End Sub

Private Sub userform_initialize()
Dim ar() As Variant
With ListBox1
ar = Worksheets("Tabelle1").Range("A2:C100").Value
.List = ar
.ColumnHeads = True
End With
End Sub

Private Sub ListBox1_Click()
With ListBox1
UserForm1.ComboBox1 = .List(.ListIndex, 0)
UserForm1.ComboBox2 = .List(.ListIndex, 1)
UserForm1.TextBox1 = .List(.ListIndex, 2)
End With
End Sub

cu
Chris

Anzeige
Danke Chris-umgebaut läuft es!
29.04.2016 15:04:33
Vic
Danke Chris,
Loletzte = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
kommt durch die Einbettung in with Tabelle2 bei mir seit jeher problemlos ohne erneute Referenzierung aus.
Der Nachbau der UF mit deinem Code liefert mir bei
  .Cells(ListBox1.ListIndex + 1, 3).Value = CDbl(TextBox1.Value)

einen Syntax-Fehler, läuft umgestellt aber wie gewünscht. Hier das gesamte Grundgerüst ohne Rüschen:
Option Explicit
'Listbox füllen
Private Sub userform_initialize()
Dim ar() As Variant
With ListBox1
ar = Worksheets("Katalog").Range("A2:B50").Value
.List = ar
.ColumnHeads = False
.ColumnCount = 2
.ColumnWidths = "2cm;4cm"
End With
End Sub
'Änderung in Tabelle übertragen
Private Sub CommandButton1_Click()
With Worksheets("Katalog")
.Cells(ListBox1.ListIndex + 2, 1).Value = TextBox1
.Cells(ListBox1.ListIndex + 2, 2).Value = TextBox2
End With
TextBox1 = ""
TextBox2 = ""
End Sub
'Button hinzufügen - Werte aus Textfeldern in Tabelle übernehmen
Private Sub CommandButton5_Click()
Dim Loletzte As Long
Loletzte = Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row + 1
With Tabelle2
.Cells(Loletzte, 1) = Me.TextBox1.Value
.Cells(Loletzte, 2) = Me.TextBox2.Value
End With
End Sub
'Listbox klick lädt gewählten Eintrag in die Textboxen
Private Sub ListBox1_Click()
With ListBox1
UserForm3.TextBox1 = .List(.ListIndex, 0)
UserForm3.TextBox2 = .List(.ListIndex, 1)
End With
End Sub
'Userform schliessen
Private Sub CommandButton4_Click()
Unload Me
End Sub
Vic

Anzeige
AW: Problem mit Textübertrag aus Listbox
29.04.2016 16:03:29
snb
Die Listbox Eigenschaften sollten doch im Design Mode eingetragen werden.
Dann reicht:
Private Sub userform_initialize()
ListBox1.List=sheets("Katalog").Range("A2:B50").Value
End Sub

AW: Problem mit Textübertrag aus Listbox
29.04.2016 16:09:04
snb

Private Sub CommandButton1_Click()
sheets("Katalog").Cells(ListBox1.ListIndex + 2, 1).resize(,2) = array(TextBox1,textbox2)
TextBox1 = ""
TextBox2 = ""
End Sub
Private Sub CommandButton5_Click()
Tabelle2.Cells(Rows.Count, 1).End(xlUp).offset(1).resize(,2)=array(textbox1,textbox2)
End Sub
Private Sub ListBox1_Click()
TextBox1 = listbox1.column(0)
TextBox2 = listbox1.column(1)
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige