Excel VBA - Listbox mit Array befüllen und Auswahl in Array zurückschreiben
Hallo,
ich habe derzeit einen Array wie folgt definiert: [ID, Abk, Text, aktiv]
Über einen Array lese ich [ID, Abk, Text] ein und verarbeite die Werte weiter.
Derzeit setze ich den letzten Array-Bereich [aktiv] statisch. Dieser Bereich dient dazu, das entsprechende Modul zu aktivieren oder deaktivieren.
Dies würde ich gerne über eine UserForm und variable Listbox zur Auswahl realisieren.
Der Ablauf sollte wie folgt sein:
1. vorhadenen Array-Elemente einlesen [ID, Abk, Text]
2. UserForm mit Listbox aller Array-Elemente [ID, Abk, Text] darstellen
3. Userauswahl der gewünschten Module
4. Bestätigung der Auswahl mit OK-Button --> Auswahl setzt die entsprechenden Array-Elemente [aktiv] = "TRUE"
Derzeit stehe ich aber etwas am Schlauch wie ich das realisiert bekomme.
Danke schonmal
Gruß feder
ich habe derzeit einen Array wie folgt definiert: [ID, Abk, Text, aktiv]
Über einen Array lese ich [ID, Abk, Text] ein und verarbeite die Werte weiter.
Derzeit setze ich den letzten Array-Bereich [aktiv] statisch. Dieser Bereich dient dazu, das entsprechende Modul zu aktivieren oder deaktivieren.
Dies würde ich gerne über eine UserForm und variable Listbox zur Auswahl realisieren.
Der Ablauf sollte wie folgt sein:
1. vorhadenen Array-Elemente einlesen [ID, Abk, Text]
2. UserForm mit Listbox aller Array-Elemente [ID, Abk, Text] darstellen
3. Userauswahl der gewünschten Module
4. Bestätigung der Auswahl mit OK-Button --> Auswahl setzt die entsprechenden Array-Elemente [aktiv] = "TRUE"
Derzeit stehe ich aber etwas am Schlauch wie ich das realisiert bekomme.
Danke schonmal
Gruß feder
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 246849
Url: https://administrator.de/contentid/246849
Ausgedruckt am: 26.11.2024 um 10:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo feder,
ich habe dir mal ein Demo-Sheet dazu gebaut das eine Listbox mit einem Beispiel-Array füllt, und welches du durch das Setzen von Checkboxen updaten kannst.
p.s. falls du die Ursprungswerte aus einer Excel-Tabelle ausliest lässt sich die Listbox auch ohne ein Zwischenarray mit einem Bereich im Sheet verbinden und entsprechend aktualisieren (mit der RowSource Eigenschaft der Listbox). Das würde dir das Füllen eines Arrays ersparen.
Grüße Uwe
ich habe dir mal ein Demo-Sheet dazu gebaut das eine Listbox mit einem Beispiel-Array füllt, und welches du durch das Setzen von Checkboxen updaten kannst.
p.s. falls du die Ursprungswerte aus einer Excel-Tabelle ausliest lässt sich die Listbox auch ohne ein Zwischenarray mit einem Bereich im Sheet verbinden und entsprechend aktualisieren (mit der RowSource Eigenschaft der Listbox). Das würde dir das Füllen eines Arrays ersparen.
Grüße Uwe
Zitat von @chef1568:
das Problem ist, dass ich nicht weiß wie groß die Inhalte des Arrays tatsächlich sind.
Deshalb beende ich auch die Einleseschleife sobald ich die erste leere Zeile erreiche.
du weist schon das man ein Array dynamisch gestalten und in der Größe anpassen kann ?! Stichwort: Redim Preservedas Problem ist, dass ich nicht weiß wie groß die Inhalte des Arrays tatsächlich sind.
Deshalb beende ich auch die Einleseschleife sobald ich die erste leere Zeile erreiche.
Hallo zusammen!
Wie wäre es mit:
Grüße Dieter
Wie wäre es mit:
Option Explicit
Private Const RowStart = 3
Private Sub UserForm_Initialize()
Dim RowEnd As Long
With Sheets("Tabelle1")
RowEnd = .Cells(RowStart, 1).End(xlDown).Row
ListBox1.List = .Cells(RowStart, 1).Resize(RowEnd - RowStart + 1, 4).Value
End With
End Sub
Grüße Dieter