Inhalt einer Combobox komplett auslesen?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Inhalt einer Combobox komplett auslesen?
von: Oliver S.
Geschrieben am: 16.03.2005 10:40:40
Hallo an alle,
ich habe da mal eine kurze Frage. Kann man irgendwie den kompletten Inhalt einer ComboBox auslesen? Ich fülle die Combobox mit diversen Namen. Doppelte Namen werden herausgefiltert. Nun benötige ich allerdings einen VBA Code, der mir irgendwie, bzw. irgendwo auflistet, was aktuell für Namen in der Combobox stehen. Kann man das irgendwie? Bin für jede Hilfe Dankbar.
Gruß,
Oliver

Bild

Betrifft: AW: Inhalt einer Combobox komplett auslesen?
von: bst
Geschrieben am: 16.03.2005 12:36:35
Hallo Oliver,
Versuch's mal mit sowas. Der Name bzw. Index ist anzupassen.
cu, Bernd
--
Sub ListComboBoxInTabellenblatt()
Dim cb As MsForms.ComboBox
Dim i As Integer

Set cb = ActiveSheet.OLEObjects(1).Object
For i = 0 To cb.ListCount - 1
Debug.Print i, cb.List(i)
Next
End Sub
' In einer Userform:
Option Explicit

Private Sub CommandButton1_Click()
   Dim i As Integer
   For i = 0 To ComboBox1.ListCount - 1
      Debug.Print i, ComboBox1.List(i)
   Next
End Sub

Bild

Betrifft: AW: Inhalt einer Combobox komplett auslesen?
von: Florian
Geschrieben am: 16.03.2005 12:48:46
Hallo,
ich habs so ähnlich wie Bernd. Der Unterschied ist nur, dass die Daten in die Tabelle 1 ausgegeben werden. Musst Du Dir vielleicht noch nach Deinen Wünschen anpassen.

Sub Auslesen()
For n = 1 To ComboBox1.ListCount - 1
Sheets("Tabelle1").Range("A100").End(xlUp).Offset(1, 0) = ComboBox1.List(n)
Next n
End Sub

Gruß, Florian
Bild

Betrifft: Bei beiden Lösungscodes kommen Fehlermeldungen?
von: Oliver S.
Geschrieben am: 16.03.2005 13:55:54
Hi Bernd, hi Florian,
danke Euch beiden für die Antworten. Allerdings funktionieren beide leider nicht. Bei Bernds Lösung kommt der Fehler 13 "Typen unverträglich" und es wird mir die Zeile
Set cb = ActiveSheet.OLEObjects(1).Object
farblich hinterlegt.
Bei Florians Lösung kommt der Fehler 424 "Objekt erforderlich" und es wird die Zeile
For n = 1 To ComboBox1.ListCount - 1
farblich hinterlegt.
Woran kann das liegen? Ich habe beide Codes in einer einfachen Beispieldatei gestestet, in der nur ein Kombinationsfeld (ComboBox1) vorhanden ist. Dieses Kombifeld ist mit 3 Namen, die in den Zellen A1:A3 stehen gefüllt.
Ich hoffe, dass einer von Euch beiden noch mal in dem Beitrag vorbeischaut und eventuell eine Fehlerbehebung parat hat. Danke jeden falls noch mal und im Voraus,
Oliver
Bild

Betrifft: AW: Bei beiden Lösungscodes kommen Fehlermeldungen?
von: bst
Geschrieben am: 16.03.2005 14:21:37
Hallo Florian,
Oliver's Lösung sowie meine 2. Variante funktioniert NUR innerhalb einer Userform, nicht in einer Tabelle.
Wenn Du eine Fehlermeldung bei:
Set cb = ActiveSheet.OLEObjects(1).Object
bekommst heißt das, daß Dein 1. OLEObjekt in der betreffenden Tabelle keine
Combobox aus der Menuleiste "Steuerelemente-Toolbox" ist.
Versuch mal sowas:
set cb = ActiveSheet.OLEObjects("ComboBox1").Object
Nimm hier den Namen Deiner ComboBox.
Wenn's denn nicht funkt führe mal unten stehende

Sub aus und poste deren Ergebnis.
HTH, Bernd
-- 
Option Explicit

Sub ListAllShapesAndObjects()
   Dim i As Integer
   
   For i = 1 To ActiveSheet.Shapes.Count
      With ActiveSheet.Shapes(i)
         Cells(i, 1) = i
         Cells(i, 2) = .Name
         Cells(i, 3) = .Type
      End With
   Next i
   
   For i = 1 To ActiveSheet.OLEObjects.Count
      With ActiveSheet.OLEObjects(i)
         Cells(i, 5) = .Name
         Cells(i, 6) = .OLEType
      End With
   Next i
End Sub

Bild

Betrifft: Das war's, perfekt!
von: Oliver S.
Geschrieben am: 16.03.2005 14:30:51
Hi Bernd,
danke Dir für Deine Antwort. Des Schlüssels Lösoung war, dass eben in der von Dir oben aufgeführten Zeile
set cb = ActiveSheet.OLEObjects("ComboBox1").Object

die Zahl 1 gegen Combobox1 ausgewechselt werden musste, obwohl das Kombinationsfeld aus der Symbolleiste Steuerelement-Toolbox stammte. Na egal, hauptsache es funktioniert. Danke Dir und auch Florian nochmals für die Hilfe.
Gruß und noch einen schönen Tag,
Oliver
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Inhalt einer Combobox komplett auslesen?"