Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA-Array in Listbox

VBA-Array in Listbox
30.11.2018 13:46:48
Herbert
Hallo,
irgendwie stehe ich auf dem Schlauch! Ich kriege es einfach nicht hin, den Inhalt eines Arrays in eine Listbox einzulesen. Könnt ihr mir da bitte helfen?
Hier mein bisher verwendeter Code:
Private Sub UserForm_Initialize()
Dim arrC As Variant, iCount%, arrMonate(0 To 12) As String
arrC = Array("Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", _
"August", "September", "Oktober", "November", "Dezember", "Nächster Jänner")
For iCount = 0 To 12
arrMonate(iCount) = arrC(iCount)
Next iCount
ComboBox1.List = arrMonate
End Sub
Servus
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
funktioniert. owT
30.11.2018 13:54:48
Rudi
AW: funktioniert. owT
30.11.2018 14:16:01
Herbert
Hallo Rudi,
Bei mir eben leider nicht! Bringt immer einen Laufzeitfehler 70!
Servus
AW: funktioniert. owT
30.11.2018 14:28:50
Mullit
Hallo,
...hmm, das ist eigenartig, das ist der Zugriffsfehler, der sollte da eigentlich nicht kommen, wenn alle Objekte korrekt benannt sind, vielleicht mal testweise Excel komplett schließen und neu öffnen...
Gruß, Mullit
Anzeige
AW: funktioniert. owT
30.11.2018 14:34:22
Mullit
Hallo Herbert,
...ah ja da haben wir den Grund: Du hast gleichzeitig auch die RowSource-Eigenschaft gesetzt, dann kannst Du nicht auch noch per Code über die .List- Eigenschaft ein Array zuweisen, da erhalte ich den Fehler auch...
Gruß, Mullit
AW: funktioniert. owT
30.11.2018 14:38:37
Herbert
Hallo Mullit,
Bingo!!! Das war des Pudels Kern! Ich hatte übersehen, dass da noch die RowSource gesetzt war! Manchmal sieht man wirklich den Wald vor lauter Bäumen nicht mehr! Nun funzt es! Vielen Dank!
Servus
Anzeige
AW:...alles klar, prima... owT
30.11.2018 14:40:47
Mullit
AW: funktioniert. owT
30.11.2018 16:57:01
Herbert
Hallo Mullit,
woher wusstest du eigentlich, dass ich die "RowSource"-Eigenschaft gesetzt habe? Kannst du "hellsehen"? ;o)=)
Servus
AW: ..ja, klar...;-)
01.12.2018 16:40:53
Mullit
...könnt ich jetzt antworten, um mal dem Mythos des allwissenden VBA-lers Nahrung zu geben...;-).
Nein nein, mir fiel einfach wieder ein, daß es da einen Konflikt gibt, wenn man beide Eigenschaften nutzt, hab das kurz nachgestellt und erhielt auch den Lfzt-Fehler 70.
Da nahm ich einfach mal an, daß Du in die gleiche Falle gelaufen bist...
Gruß, Mullit
Anzeige
AW: ..ja, klar...;-)
01.12.2018 16:42:26
Herbert
"Genital"! ;o)=) Sehr gut kombiniert! Vielen Dank noch mal!
Servus
AW: VBA-Array in Listbox
30.11.2018 14:17:14
Mullit
Hallo,
...und da würde für index 0 to 12 sogar reichen:
ComboBox1.List = Array("Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", _
"August", "September", "Oktober", "November", "Dezember", "Nächster Jänner")

Gruß, Mullit
Anzeige
oder...
30.11.2018 16:53:15
robert
ComboBox1.List = Application.GetCustomListContents(8)
Gruß
robert
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA-Array in Listbox nutzen


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Öffne den VBA-Editor (ALT + F11) und füge eine neue UserForm hinzu.

  2. ListBox oder ComboBox hinzufügen: Ziehe ein ListBox- oder ComboBox-Steuerelement auf die UserForm.

  3. VBA-Array definieren: Definiere ein Array mit den gewünschten Werten. Beispiel:

    Dim arrMonate As Variant
    arrMonate = Array("Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", _
                     "August", "September", "Oktober", "November", "Dezember", "Nächster Jänner")
  4. Array in ListBox einfügen: Nutze die .List-Eigenschaft, um das Array in die ListBox oder ComboBox zu laden:

    Private Sub UserForm_Initialize()
       ComboBox1.List = arrMonate
    End Sub
  5. Fehlerbehebung: Stelle sicher, dass du die RowSource-Eigenschaft nicht gleichzeitig setzt, da dies zu Laufzeitfehlern führen kann.


Häufige Fehler und Lösungen

  • Laufzeitfehler 70: Dieser Fehler tritt auf, wenn du versuchst, die .List-Eigenschaft zu nutzen, während die RowSource gesetzt ist. Löse dieses Problem, indem du die RowSource entfernst.

  • Leere ListBox: Wenn die ListBox leer bleibt, überprüfe, ob die UserForm korrekt initialisiert wird und das Array die gewünschten Werte enthält.


Alternative Methoden

  • Application.GetCustomListContents: Eine einfache Möglichkeit, eine benutzerdefinierte Liste in eine ListBox zu laden, ist die Verwendung von Application.GetCustomListContents. Beispiel:

    ComboBox1.List = Application.GetCustomListContents(8)
  • VBA-Array ausgeben: Du kannst auch eine Funktion schreiben, um ein beliebiges Array in die ListBox zu laden, was mehr Flexibilität bietet.


Praktische Beispiele

  • VBA ListBox mit Monatsnamen:

    Private Sub UserForm_Initialize()
       Dim arrMonate As Variant
       arrMonate = Array("Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", _
                         "August", "September", "Oktober", "November", "Dezember", "Nächster Jänner")
       ComboBox1.List = arrMonate
    End Sub
  • Dynamische Daten in ListBox: Verwende ein Array, das aus Daten aus einer Excel-Tabelle erstellt wird:

    Dim i As Long
    Dim arrData() As Variant
    arrData = Range("A1:A10").Value
    For i = LBound(arrData) To UBound(arrData)
       ComboBox1.AddItem arrData(i, 1)
    Next i

Tipps für Profis

  • VBA ListBox AddItem: Nutze die .AddItem-Methode, um Elemente einzeln hinzuzufügen, wenn du mehr Kontrolle benötigst:

    Dim i As Long
    For i = LBound(arrMonate) To UBound(arrMonate)
       ComboBox1.AddItem arrMonate(i)
    Next i
  • Zugriff auf Werte: Um Werte aus der ListBox zu lesen, verwende:

    Dim selectedValue As String
    selectedValue = ComboBox1.Value

FAQ: Häufige Fragen

1. Wie kann ich ein Array in eine ListBox in Access einfügen?
In Access kannst du ähnliche Methoden wie in Excel verwenden, um ein Array in eine ListBox zu laden. Achte darauf, die spezifischen Eigenschaften und Methoden von Access VBA zu nutzen.

2. Was ist der Unterschied zwischen ListBox und ComboBox?
Eine ListBox zeigt mehrere Elemente gleichzeitig an, während eine ComboBox eine Dropdown-Liste ist, die es dem Benutzer ermöglicht, ein Element auszuwählen oder ein neues einzugeben.

3. Wie kann ich ein Array aus einer Excel-Tabelle in eine ListBox laden?
Du kannst ein Array aus einem Zellbereich erstellen und dann mit einer Schleife die Werte in die ListBox einfügen, wie im Abschnitt „Praktische Beispiele“ gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige