Microsoft Excel

Herbers Excel/VBA-Archiv

Listbox (Multi) auslesen und abspeichern


Betrifft: Listbox (Multi) auslesen und abspeichern
von: Andi
Geschrieben am: 01.12.2018 15:25:03

Hallo alle zusammen und ein schönes Wochenende,

habe nochmal eine Frage bezüglich Listboxen. Ich lese Zellen zwischen A10:A18 in eine einspaltige Listbox mit Multiselect-Option. Das klappt dank der Hilfe des Forums auch blendend. Leere Zellen werden hierbei auch ausgeblendet (zb wenn in A13 nichts steht) und in die Listbox nicht übernommen. Gewisse Einträge können dann ausgewählt werden, andere widerrum nicht. Soweit so gut.

Jetzt würde ich gerne folgendes wissen. Wie kann ich meine Werte abspeichern und zwar so, dass alle Zellen zwischen A10 und A18 hinterher berücksichtigt werden. In die Tabelle würde ich dann gerne in einen vordefinierten Bereich (nehmen wir mal B10:B18) jeweils den Wert der ausgewählten Zelle übernehmen wollen, die Zeilen die ausgeblendet wurden, bleiben leer.

A10 zu B10, A11 zu B11; A12: B12, usw. Wichtig ist, dass die Werte immer an die gleiche Stelle geschrieben werden, unabhängig, ob mal A13 oder A15 leer ist.

ICh hoffe das war verständlich zu erklären.

Quasi nach dem Motto: LEse a10 bis A18 ein, blende mal gerade aus, was wir hier nicht brauchen (weil zb A13 diesmal leer), speichere danach den Wert von A11 in B11,A15 in B15 (bsp) und zwar nur, weil dieser in der Listbox angeklickt und ausgewählt wurde.

  

Betrifft: AW: Listbox (Multi) auslesen und abspeichern
von: Sepp
Geschrieben am: 01.12.2018 15:43:04

Hallo Andi,

speichere die Zelladresse in einer weiteren, ausgeblendeten Spalte der Listbox.

Private Sub ListBox2_Change()
  With ListBox2
    If .ListIndex > -1 Then
      Sheets("Tabelle2").Range(.List(.ListIndex, 1)) = .Selected(.ListIndex)
    End If
  End With
End Sub

Private Sub UserForm_Initialize()
  Dim rng As Range

  With ListBox2
    .MultiSelect = fmMultiSelectMulti
    .ListStyle = fmListStyleOption
    .ColumnCount = 2
    .ColumnWidths = "120pt;0pt"

    For Each rng In Sheets("Tabelle2").Range("A11:A18")
      If rng <> "" Then
        .AddItem rng
        .List(.ListCount - 1, 1) = rng.Offset(0, 1).Address(0, 0)
        .Selected(.ListCount - 1) = rng.Offset(0, 1) = True
      End If
    Next
  End With
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: Listbox (Multi) auslesen und abspeichern
von: Andi
Geschrieben am: 01.12.2018 16:23:30

Hallo Sepp,

ich kann dir gerade nicht folgen. Warum zwei Spalten ? Kannst du mir dein Vorgehen kurz erläutern, man lernt ja gerne dazu... Wie bekomme ich das dann in die Felder B10:B18?

LG Andy


  

Betrifft: AW: Listbox (Multi) auslesen und abspeichern
von: Sepp
Geschrieben am: 01.12.2018 16:28:09

Hallo Andi,

die zweite Spalte dient zum Speichern der Zelladresse, damit man die Einträge richtig zuordnen kann.

Beim an- oder ab-wählen eines Eintrages, wird True oder False in die entsprechende Zelle geschrieben und beim Füllen der ListBox entsprechend ausgelesen.

Probier doch einfach den Code!

 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: Threat hier eledigt.
von: Andi
Geschrieben am: 01.12.2018 20:20:42

Threat erstmal erledit - habe einen neuen aufgemacht, da ich da nicht weiterkomme. Dort ist auch eine Datei hinterlegt, wie ich mir das vorstelle.

Danke nochmal für deine Hilfe, vl kannst du ja ggf. tolle Ratschläge im neuen Threat geben!!!


  

Betrifft: AW: Listbox (Multi) auslesen und abspeichern
von: Andi
Geschrieben am: 01.12.2018 18:15:58

Herbert, das war schon fast so, wie ich mir es vorstelle. Gibt es eine Möglichkeit auch den Wert von der Zelle mit Häckchen zu verwenden. Derzeit wird ja Wahr dorthineingeschrieben. Ich will aber, dass die Zelle A10 zb, wenn diese Müller heisst, auch in B10 Müller steht


  

Betrifft: AW: Listbox (Multi) auslesen und abspeichern
von: Andi
Geschrieben am: 01.12.2018 18:19:13

Verzeihung... Sepp, nicht Herbert ... Ich bin untröstlich....


  

Betrifft: Threat hier erledigt
von: Andi
Geschrieben am: 01.12.2018 20:20:10

Threat erstmal erledit - habe einen neuen aufgemacht, da ich da nicht weiterkomme. Dort ist auch eine Datei hinterlegt, wie ich mir das vorstelle.

Danke nochmal für deine Hilfe, vl kannst du ja ggf. tolle Ratschläge im neuen Threat geben!!!