Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
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

Listbox Einträge in Tabelle übertragen

Listbox Einträge in Tabelle übertragen
01.04.2020 16:22:59
Sven
Hallo zusammen,
ich habe eine Excel Tabelle in der ich Stunden für Projekte tracke die ich dann später in SAP übertrage.
Ich habe ein Tabellenblatt "Projekte" in den im alle relevanten Informationen für die Projekte hinterlege,
Im Monats Tabellenblatt habe ich dann eine Spalte Auswahl über die in mit Doppelklick in eine Zelle eine Userform mit Listbox aufrufe.
Die Listbox enthält die Informationen aus dem Tabellenblatt "Projekte".
Mit einem Doppelklick auf den Richtigen Eintrag sollen nun die Daten in die Zeile übertragen werden wo ich mit dem Doppelklick die Userform geöffnet habe.
Ich möchte die Informationen nicht alle nebeneinander in die Zeile schreiben sondern in unterschiedliche Spalten.
Hier der Code aus der Listbox

Private Sub UserForm_Initialize()
With ListBox1
.List = range("ProjektAuswahl").Value
.ColumnCount = 5      'Spaltenanzahl
.ColumnHeads = False                       'Tabellenüberschrift (nur bei RowSource)
'.RowSource = "ProjektAuswahl"
.ColumnWidths = "15cm;3cm;10cm;3cm;5cm"     'Spaltenbreite festlegen
End With
End Sub

Code aus der Listbox

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'hier müsste jetzt der Code zum Kopieren ins Tabellenblatt rein
UserForm1.Hide
End
https://www.herber.de/bbs/user/136326.xlsm
Danke und Gruß
Sven

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

Betreff
Datum
Anwender
Anzeige
AW: Listbox Einträge in Tabelle übertragen
01.04.2020 16:41:41
Matthias
Moin!
ALso ungetestet sollte es bspw. so gehen:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim spalte As Long
'hier müsste jetzt der Code zum Kopieren ins Tabellenblatt rein
For spalte = 1 To 5
ActiveCell.Offset(, spalte - 1) = listbox1.List(listbox1.ListIndex, spalte - 1)
Next
Userform1.Hide
End

Damit werden die ersten 5 Spalten befüllt (habe die DAtei nicht geöffnet). Falls es andere Spalten sind, müsste man noch was ändern. Bspw. die Spaltenindizes in einem Array.
VG
AW: Listbox Einträge in Tabelle übertragen
01.04.2020 16:52:48
Sven
Hallo Matthias,
danke für die Antwort,
Die Spalten liegen nicht neben einander.
Einträge erfolgen in
Spalte B,C,I und J aber jeweils in der gleichen Zeile.
Der Code aus dem Tabellenblat zum Öffnen der Userform sieht so aus.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As range, Cancel As Boolean)
If Not Intersect(Target, range("Auswahl")) Is Nothing Then
UserForm1.Show
End If
End Sub
Ist dann das Tabellenblatt nicht schon offen wenn ich aus diesem Tabellenblatt ja die Userform aufrufe?
MFG
Anzeige
AW: Listbox Einträge in Tabelle übertragen
01.04.2020 17:11:10
Matthias
Moin!
Das Tabellenblatt ist dann schon aktiv. Deshalb spreche ich es nicht noch extra an. Probier dann mal so. Damit werden deine 4 Spalten beschrieben.
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim spalte As Long
Dim listspalt
listspalt = Array(2, 3, 9, 10)
'hier müsste jetzt der Code zum Kopieren ins Tabellenblatt rein
For spalte = 0 To 3
Cells(ActiveCell.Row, listspalt(spalte)) = listbox1.List(listbox1.ListIndex, spalte)
Next
Userform1.Hide
End

VG
AW: Listbox Einträge in Tabelle übertragen
01.04.2020 17:26:04
Sven
Hallo,
es funktioniert so weit. Danke schon mal dafür
Jetzt habe ich gerade fest gestellt das ich in der Userform eine Spalte habe die nur zur Information dient und die nicht mit Übertragen werden soll.
Spalte A,B und D,E sollen übertragen werden.
Gibt es auch die Möglichkeit das ohne die Schleife zumachen so was dich per Hardcodierung
auswählen kann welche Spalte ich wohin übertragen möchte.
So das ich Später bei eventuellen Änderungen in der Tabelle recht einfach anpassen kann.
MFG
Anzeige
AW: Listbox Einträge in Tabelle übertragen
01.04.2020 18:28:30
Sven
Hallo,
habe es gelöst.
folgender Code wurde verwendet.
'### LISTBOX ###
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Cells(ActiveCell.Row, 2) = ListBox1.List(ListBox1.ListIndex, 0)     'Spalte 1 der Listbox  _
wird in Spalte B im Tabellenblatt kopiert
Cells(ActiveCell.Row, 3) = ListBox1.List(ListBox1.ListIndex, 1)     'Spalte 2 der Listbox  _
wird in Spalte C im Tabellenblatt kopiert
Cells(ActiveCell.Row, 9) = ListBox1.List(ListBox1.ListIndex, 3)     'Spalte 4 der Listbox  _
wird in Spalte I im Tabellenblatt kopiert
Cells(ActiveCell.Row, 10) = ListBox1.List(ListBox1.ListIndex, 4)    'Spalte 5 der Listbox  _
wird in Spalte J im Tabellenblatt kopiert
UserForm1.Hide
'### Beispiel für Schleife wenn die Spalten die Kopiert werden sollen neben einander stehen.
'Dim spalte As Long
'Dim listspalt
'listspalt = Array(2, 3, 9, 10)
'For spalte = 0 To 3
'    Cells(ActiveCell.Row, listspalt(spalte)) = ListBox1.List(ListBox1.ListIndex, spalte)
'Next
End Sub
Danke und mfg
Sven
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige