Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
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
VBA - Multiselect Listbox auf Tabelle
28.03.2017 16:35:40
Tobias
Hallo zusammen,
Nun hoffe ich Mal, dass ich das kompetenteste Forum für meine Anfrage gewählt habe.
Kleiner Satz zu mir:
Ich gehöre eher zu den Newbies im VBA-Bereich, doch die Freude ist gross. Bis jetzt konnte ich alles mit ausprobieren und googeln lösen, doch nun brauche ich spezifische Hilfe.
Folgendes Problem habe ich:
Ich versuche eine Offert-Tool zu programmieren. Soweit so gut. Nun möchte ich bei einer Multiselect Listbox mit mehreren Spalten eine Auswahl treffen, welche danach in die Offerte (Tabelle) jeweils an einen spezifischen Ort abgebildet werden. Die Spalten in der Listbox, sollen jeweils auf einer Zeile in verschiedenen nicht aufeinanderfolgenden Zellen abgebildet werden. Am liebsten wäre es mir die Zeile wird jeweils für die ausgewählte Zeile in der Listbox neu auf der Tabelle generiert.
Situtaion heute:
Die Mehrfach Auswahl wird in die Tabelle an den richtigen Ort übertragen, jedoch werden die Spalten auf der Tabelle nacheinander abgebildet. Die 5 Spalten-Werte aus der Listbox sollen in folgende Zellen C, G, I, L, N.
Des Weiteren kann ich nicht eine neue Zeile dynamisch nach dem jeweiligen Eintrag aus der Listbox generieren. Ich musste die Zelle definieren.
Momentan ist die ganze Sache eher statisch, leider bin ich noch nicht fähig die Codierung dynamischer zu machen.
Ich habe die Excel-Datei hochgeladen:
https://www.herber.de/bbs/user/112485.xlsm
Ich hoffe ich finde hier den richtigen Crack.
Lieben Dank und Grüssse
Tobias
Mein Code sieht momentan so aus:

Private Sub cmdbtplanung_Click()
ListBoxRausSelected ListBoxPlanung, _
ThisWorkbook.Worksheets("Offerte").Range("C27")
End Sub


Private Sub ListBoxRausSelected(ListBoxPlanung As MSForms.ListBox, _
StartZelle As Range)
Dim vX() As Variant, i As Long, z As Long, k As Integer
' Anzahl der selektierten Zeilen, dürfte schneller as Redim Konstrukte sein
With ListBoxPlanung
For i = 0 To .ListCount - 1
If .Selected(i) Then z = z + 1
Next i
If z = 0 Then Exit Sub ' Wenn nichts selektiert
ReDim vX(1 To z, 1 To .ColumnCount) 'Feld dimensionieren
z = 0
For i = 0 To .ListCount - 1 ' Ins Feld schreiben
If .Selected(i) Then
z = z + 1
For k = 0 To .ColumnCount - 1
vX(z, k + 1) = .List(i, k)
Next k
End If
Next i
End With ' Und jetzt raus damit
With StartZelle
Range(.Parent.Cells(StartZelle.Row, StartZelle.Column), _
.Parent.Cells(StartZelle.Row + z - 1, _
StartZelle.Column + ListBoxPlanung.ColumnCount - 1)).Value = vX
Rows("27:27").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
End With
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Multiselect Listbox auf Tabelle
29.03.2017 13:14:25
ChrisL
Hi Tobias
Private Sub cmdbtplanung_Click()
ListBoxRausSelected ListBoxPlanung, _
ThisWorkbook.Worksheets("Offerte").Range("C27")
End Sub

Private Sub ListBoxRausSelected(ListBoxPlanung As MSForms.ListBox, _
StartZelle As Range)
Dim vX() As Variant, i As Long, z As Long, k As Integer
' Anzahl der selektierten Zeilen, dürfte schneller as Redim Konstrukte sein
With ListBoxPlanung
For i = 0 To .ListCount - 1
If .Selected(i) Then z = z + 1
Next i
If z = 0 Then Exit Sub ' Wenn nichts selektiert
ReDim vX(1 To z, 1 To .ColumnCount) 'Feld dimensionieren
z = 0
For i = 0 To .ListCount - 1 ' Ins Feld schreiben
If .Selected(i) Then
z = z + 1
For k = 0 To .ColumnCount - 1
vX(z, k + 1) = .List(i, k)
Next k
End If
Next i
End With ' Und jetzt raus damit
For i = UBound(vX) To 1 Step -1
Rows("27:27").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Range("C27") = vX(i, 1)
Range("G27") = vX(i, 2)
Range("I27") = vX(i, 3)
Range("L27") = vX(i, 4)
Range("N27") = vX(i, 5)
Next i
End Sub

cu
Chris
Anzeige
AW: VBA - Multiselect Listbox auf Tabelle
30.03.2017 10:27:54
Tobias
Hallo Chris,
Ich bedanke mich herzlichst.
Deine Lösung klappt genau so wie ich mir das vorgestellt habe. Nun bemühe ich mich noch zu die Lösung zu verstehen, damit ich auch etwas gelernt habe :)
Viele Grüsse
Tobi

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige