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

Mehrfachauswahl einer Listbox in Userfor

Mehrfachauswahl einer Listbox in Userfor
13.12.2022 17:19:15
Sambus
Hallo Liebe Forum Mitglieder,
ich habe folgendes Problem.
Mit dem unteren Code sollen die markierten Werte der ListBox128 in einer Userform (Multiselect Listbox mit 9 Reihen) in Tabelle3 übertragen werden.
Es werden aber nur die Werte der Reihe A übertragen. Reihen B - J fehlen.
Die Zeilen sind komplett.
Was mache ich mit der Formel falsch? Ich wäre dankbar für Hilfe!
Liebe Grüße Sambus

Private Sub CommandButton62_Click()
'Sub Multi_Listbox_auslesen()
'** Auslesen aller in einer Listbox selektierten Einträge (Multiselect)
'** Dimensionierung der Variablen
Dim i As Long
Dim lngCnt As Long
'** Startzeile festelegen
lngCnt = 1
'** Ausgabebereich löschen
Sheets("Tabelle3").Select
ActiveSheet.Range("A1:J100").ClearContents
With ListBox128
'** Beenden, wenn nichts ausgewählt wurde
If .ListIndex = -1 Then Exit Sub
'** Listbox durchlaufen
For i = 0 To .ListCount - 1
'** Gewählte Einträge auslesen
If .Selected(i) Then
txt = .List(i)
'** Eintragen der gewählten Einträge auf Tabellenblatt
ActiveSheet.Cells(lngCnt, 1).Value = txt
'** Zeilenzähler erhöhen
lngCnt = lngCnt + 1
End If
Next
End With
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrfachauswahl einer Listbox in Userfor
13.12.2022 18:13:37
ralf_b
.List(i) erweitern auf .List(i,1) , .List(i,2) usw. um die Spalten anzusprechen.
du kannst die Werte einfach in einen Text aneinanderketten mit Trennzeichen und dann für das Einfügen in die Range , Diesen wieder mit Split() auftrennen.
die Range muß aber um die Anzahl der Einträge erweitert werden.
AW: Mehrfachauswahl einer Listbox in Userfor
13.12.2022 18:56:59
Sambus
Hallo Ralf, danke für die schnelle Antwort. Ich probiere das morgen gleich aus. LG Sambus
AW: Mehrfachauswahl einer Listbox in Userfor
14.12.2022 10:40:48
Sambus
Hallo Ralf, wenn ich das so schreibe txt= .List(i,1) , .List(i,2) ,.List(i,3) usw kommt die Meldung Erwartet Anweisungsende wenn ich ein & statt dem Komme verwende kommt alles in einer Zelle zusammengeschrieben. Grüße Sambus
Anzeige
AW: Mehrfachauswahl einer Listbox in Userfor
14.12.2022 11:16:19
ralf_b
das war ja auch kein nutzbares Codebeispiel ,sondern eine Erläuterung zur Anwendung wie man auf die Spalten zugreift.
Ein & verknüpft Texte. Du solltest aber jeweils dazwischen ein Trennzeichen setzten, damit man die Texte wieder auseinander nehmen kann.
List(i,1) & "|" & List(i,2)
später Split(txt, "|") . Damit erhälst du dann ein Array mit dem du weiterarbeiten kannst.
AW: Mehrfachauswahl einer Listbox in Userfor
14.12.2022 12:55:33
Sambus
Hallo Ralf,
danke das erste funktioniert jetzt.
If .Selected(i) Then
txt = .List(i, 1) & "|" & .List(i, 2) & "|" & .List(i, 7) & "|" & .List(i, 8) Daten werden mit | als trenner übertragen
'** Eintragen der gewählten Einträge auf Tabellenblatt
ActiveSheet.Cells(lngCnt, 1).Value = Split(txt, "|")
Nach diesen Text wird aber nur der erste Teil angezeigt. Und wenn ich im Tabellenblatt Text in Spalten auswähle klappt das, aber nur bis zum nächsten mal. Dann ist die Formel weg.
Wo liegt der Fehler? Grüße Maik
Anzeige
AW: Mehrfachauswahl einer Listbox in Userfor
14.12.2022 17:17:58
ralf_b
der Fehler liegt in deiner Unaufmerksamkeit. Ich hatte bereits erwähnt das die Range erweitert werden muß damit das Datenfeld dort rein passt.
nimm dir mal dieses Makro vor und schau dir im Lokalfenster die Variablen und deren Zustände an. Arbeite mit Haltepunkt und F8 um den Code schrittweise zu durchlaufen.

Sub strtxt()
Dim arr, str$
str = "A|B|C"
arr = Split(str, "|")
arr = Application.Transpose(arr)
Range("D5").Resize(UBound(arr)) = arr
End Sub

AW: Mehrfachauswahl einer Listbox in Userfor
14.12.2022 18:42:36
Sambus
Hallo Ralf,
sorry, das liegt nicht an meiner Unaufmerksamkeit. Mir fehlt das Wissen darüber. Darum hatte ich Ausgewählt VBA Bescheiden. Wahrscheinlich war das noch zu viel. Sagen wir eher, es war bescheiden, dann habe ich 15 Jahre nichts im Excel gemacht. Dafür mache ich echt gute Italienische Luftgetrocknete Salamis ,kalt geräucherten Lachs und Beef Brisket. Leider hilft mir das hier nicht weiter.
Ich habe mir das Makro angesehen und auch die Variablen dabei beobachtet. Schaut alles toll aus, nur sagt mir das nichts
Danke Maik.
Anzeige
AW: Mehrfachauswahl einer Listbox in Userfor
14.12.2022 19:14:48
Daniel
Hi
wenn du die komplette Listboxspalte in den Zellbereich übertragen willst, dann ersetze diesen Code

'** Eintragen der gewählten Einträge auf Tabellenblatt
ActiveSheet.Cells(lngCnt, 1).Value = txt
durch das hier

'** Eintragen der gewählten Einträge auf Tabellenblatt
ActiveSheet.Cells(lngCnt, 1).Resize(1, .Columncount).Value = Worksheetfunction.Index(.List, i, 0)
das Resize vergrößert den Zellbereich um die Anzahl der benötigten Spalten und Index ist hier die aus Excel bekannte Index-Funktion, mit der man aus einem größeren Zellbereich nicht nur einzelne Zellen, sondern auch Zeilen oder Spalten auswählen kann. Diese Funktion kann man auch auf das .List-Array der Listbox anwenden, um eine einzelne Zeile zu bekommen.
solltest du nicht alle Spalten der Listbox übergeben wollen sondern nur einige oder dabei die Reihenfolge tauschen, dann gehst du so vor:

'** Eintragen der gewählten Einträge auf Tabellenblatt
ActiveSheet.Cells(lngCnt, 1).Resize(1, 4).Value = Array(.List(i, 1), .List(i, 5), .List(i, 3), .List(i, 7)) 
die Zahl im Resize (4) richtet sich dabei nach der anzahl der Werte, die du übergeben willst.
Gruß Daniel
Anzeige
AW: Mehrfachauswahl einer Listbox in Userfor
14.12.2022 19:19:56
Sambus
Hallo Daniel, danke für die Hilfe. Ich passe meine Datei morgen an. Grüße Maik
AW: Mehrfachauswahl einer Listbox in Userfor
15.12.2022 08:51:06
Sambus
Guten Morgen Daniel,
danke ich habe die letzte Version bei mir "Verbaut". Perfekt, Vielen Dank Dir und schöne Weihnachten aus Oberbayern.
Maik

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige