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

Wie Combobox in Schleife ansprechen ?

Forumthread: Wie Combobox in Schleife ansprechen ?

Wie Combobox in Schleife ansprechen ?
20.07.2005 13:05:23
LT
Hi Leute,
komme einfach nicht weiter:
habe in meinem Excel-Sheet 7 Comboboxen:
cbx_Thema1
cbx_Thema2
cbx_Thema3
cbx_Thema4
cbx_Thema5
cbx_Thema6
cbx_Thema7
im VBA-Code muss ich die Value der Boxen ermitteln, bzw. verwenden. Oder z. Bsp. auch den ListIndex.
Wie aber spreche ich die Combobox in einer Schleife an, damit ich auf Value oder listindex zugreifen kann ?
For i = 1 To 7
If (ComboBox("cbx_Thema" & i).ListIndex -1) Then
'...mach was
End If
Next i
die stelle mit ComboBox("cbx_Thema" & i).ListIndex klappt natürlich nicht.
wie muss es heißen, wenn es in der Schleife funktionieren soll ?
Danke und Gruß,
LT
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie Combobox in Schleife ansprechen ?
20.07.2005 13:13:18
Hajo_Zi
Hallo LT,
ersetze Combobox durch Controls.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem Windows 2000 SP4 und Excel Version 2000 SP3.


Anzeige
AW: Wie Combobox in Schleife ansprechen ?
20.07.2005 13:21:38
LT
...hmmm tut nicht.
Fehler: Sub oder Function nicht bekannt.
sicher daß es so sein soll ?
For i = 1 To 7
If (Controls("cbx_Thema" & i).ListIndex -1) Then
...
End if
next
Gruß,
L++
ich komm nicht weiter - kann jemand helfen ?
20.07.2005 14:19:09
LT
Hi leute,
ich muss schnellstmöglich eine Lösung für das Problemchen finden.
kann mir jemand anders vielleicht kurz aus der patsche helfen ?
ich komm mit der syntax nicht klar.
weiß jemand wie sie heißen müsste ?
(...das "Controls" scheint mein Excel nicht zu kennen...)
Gruß,
LT
Anzeige
AW: ich komm nicht weiter - kann jemand helfen ?
20.07.2005 14:45:05
MichaV
Hi,

Sub bla()
Dim c As OLEObject
Dim i
For i = 1 To 2 'bei Dir sinds 7
MsgBox OLEObjects("ComboBox" & i).Object.ListIndex
Next i
End Sub

Gruss- Micha
Danke. Super.
20.07.2005 15:06:17
LT
es funktioniert.
Vielen Dank.
LT
AW: Bitte, Danke für Rückmeldung mT.
20.07.2005 15:11:30
MichaV
hab ich von Hajo gelernt.
Gruss- Micha
Anzeige
AW: Wie Combobox in Schleife ansprechen ?
20.07.2005 14:25:56
Hajo_Zi
Hallo LT
haben Deine Comboboxen den Namen cbx_Thema1 usw.?
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: ?
20.07.2005 14:43:41
Hajo_Zi
Hallo LT,
Dein Link hilft mir nicht weiter. Es war nur eine Rückfrage.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
;
Anzeige

Infobox / Tutorial

Comboboxen in VBA Schleifen ansprechen


Schritt-für-Schritt-Anleitung

Um die Werte von mehreren Comboboxen in einer Schleife zu ermitteln, kannst Du den folgenden VBA-Code verwenden. Dieser Code geht davon aus, dass Du sieben Comboboxen mit den Namen cbx_Thema1 bis cbx_Thema7 in Deinem Excel-Sheet hast:

Sub ComboboxWerteErmitteln()
    Dim i As Integer
    Dim cb As OLEObject

    For i = 1 To 7
        Set cb = ActiveSheet.OLEObjects("cbx_Thema" & i)
        If cb.Object.ListIndex <> -1 Then
            MsgBox "Wert von cbx_Thema" & i & ": " & cb.Object.Value
        End If
    Next i
End Sub

Dieser Code überprüft jede Combobox und zeigt deren Wert an, wenn ein Eintrag ausgewählt ist.


Häufige Fehler und Lösungen

  1. Fehler: "Sub oder Function nicht bekannt."

    • Lösung: Stelle sicher, dass Du die Comboboxen korrekt benannt hast und dass sie als OLEObject referenziert werden. Nutze ActiveSheet.OLEObjects("cbx_Thema" & i).
  2. Fehler: "Objektvariable oder With-Blockvariable nicht gesetzt."

    • Lösung: Überprüfe, ob die Comboboxen tatsächlich im aktiven Sheet vorhanden sind. Der Name muss exakt übereinstimmen.
  3. Fehler: "Index außerhalb des zulässigen Bereichs."

    • Lösung: Achte darauf, dass der Schleifenindex (i) innerhalb des Bereichs liegt, in dem die Comboboxen existieren. In diesem Fall von 1 bis 7.

Alternative Methoden

Eine alternative Methode zur Ermittlung der Werte in den Comboboxen ist die Verwendung einer Array-Variable. Hier ein Beispiel:

Sub ComboboxWerteMitArray()
    Dim i As Integer
    Dim comboboxNamen(1 To 7) As String
    Dim wert As String

    ' Combobox-Namen in ein Array speichern
    For i = 1 To 7
        comboboxNamen(i) = "cbx_Thema" & i
    Next i

    For i = 1 To 7
        If ActiveSheet.OLEObjects(comboboxNamen(i)).Object.ListIndex <> -1 Then
            wert = ActiveSheet.OLEObjects(comboboxNamen(i)).Object.Value
            MsgBox "Wert von " & comboboxNamen(i) & ": " & wert
        End If
    Next i
End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungsmöglichkeiten für den oben genannten Code:

  • Datenübertragung: Du kannst die Werte der Comboboxen in andere Zellen auf dem Arbeitsblatt übertragen.
If cb.Object.ListIndex <> -1 Then
    ActiveSheet.Cells(i, 10).Value = cb.Object.Value ' Übertrage Wert in die 10. Spalte
End If
  • Dynamische Berichterstellung: Verwende die Werte aus den Comboboxen, um dynamische Berichte oder Diagramme zu erstellen.

Tipps für Profis

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Fehler während der Ausführung des Codes abzufangen. Nutze On Error Resume Next oder On Error GoTo Fehlerbehandlung.

  • Performance: Wenn Du viele Comboboxen hast, erwäge die Verwendung eines Arrays, um die Leistung zu optimieren, anstatt wiederholt auf die Eigenschaften der OLEObjects zuzugreifen.

  • Modularisierung: Teile Deine VBA-Prozeduren in kleinere, wiederverwendbare Funktionen auf, um die Lesbarkeit und Wartbarkeit Deines Codes zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich den Wert einer Combobox zurücksetzen? Du kannst den Wert einer Combobox zurücksetzen, indem Du den Value-Wert auf eine leere Zeichenfolge setzt:

ActiveSheet.OLEObjects("cbx_Thema1").Object.Value = ""

2. Was ist der Unterschied zwischen ListIndex und Value? ListIndex gibt die Position des ausgewählten Elements in der Liste zurück, während Value den tatsächlichen Wert des ausgewählten Elements liefert. Wenn nichts ausgewählt ist, ist ListIndex -1.

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