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

Combobox im sheet - wie ansprechen?

Forumthread: Combobox im sheet - wie ansprechen?

Combobox im sheet - wie ansprechen?
05.08.2002 09:44:42
Florian Mueller
Hallo beisammen!
Habe per Forms-Menu direkt im Sheet eine Combobox erstellt. Jetzt stellt sich mir das Problem: Wie spreche ich das Dingens an? Ich habe die Box mit einem Makro verknuepft, das sich selbst
DropDown2_Change
benannt hat. Kann das Ding aber weder unter dem Namen
"DropDown2" noch unter "Combobox2" noch unter einem Namen, den ich einfach mal (nach verzweifelten Versuchen) oben links eingegeben hatte ansprechen:
"Object required" ist jedes mal der Fehler.
Weiss jemand Rat, oder geht es nicht anders, als selbst ein Userform zu coden? Ich komme im VB Editor auch nirgends an den Quelltext des Elements ran - nur von dem Makro..
Ciao,
Florian
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Combobox im sheet - wie ansprechen?
05.08.2002 09:48:05
Frederik Fuhrmann
Klicke doch einfach mit der rechten Maustaste auf das Feld, dann Makro zuweisen. Dann gehe erstellen...
Dann weist du wie das Teil heißt.

Gruß
F.

Re: Combobox im sheet - wie ansprechen?
05.08.2002 09:51:11
Hans W. Herber
Hallo Florian,

bei den eingefügten ComboBoxes handelt es sich um OLEObjects, deren Eigenschaften über das Object des OLEObjects angesprochen werden können. Ein Beispiel findest Du unter der folgenden Adresse. Es geht dort zwar um CheckBoxes, bei ComboBoxes funktioniert es aber sinngemäß:
https://www.herber.de/mailing/079599h.htm

hans

Anzeige
Re: Combobox im sheet - wie ansprechen?
05.08.2002 10:42:05
Florian Mueller
Hallo Hans,

es scheint sich leider nicht um ole objecte zu handeln:
das beispiel das dort angegeben ist, funktioniert bei mir nicht, und wenn ich folgendes ausfuehre:
--------
Set newSheet = Worksheets.Add
i = 2
newSheet.Range("A1").Value = "Name"
newSheet.Range("B1").Value = "Link Type"
For Each obj In Worksheets("Sheet1").OLEObjects
newSheet.Cells(i, 1).Value = obj.Name
If obj.OLEType = xlOLELink Then
newSheet.Cells(i, 2) = "Linked"
Else
newSheet.Cells(i, 2) = "Embedded"
End If
i = i + 1
Next
-----------

um die OLEs zu erhalten, wird mir angezeigt, das keine OLEs vorhanden sind..

aber dankeschonmal fuer deine Idee - oder habe ich irgendwas uebersehen?

Ciao,
Florian

Anzeige
Re: Combobox im sheet - wie ansprechen?
05.08.2002 10:47:52
Florian Mueller
Hallo Fredderick,

ich mache das mal an einem Button deutlich:
- einfuegen eines neuen Buttons
- makro aufnehmen
- das makro ist heisst dann:

Sub Button4_Click()
' blah
End Sub

moechte ich nun

Sub Button4_Click()
Button4.Caption = "links"
End Sub

ausfuehren ist Button4 kein Object....

was nu???
Ciao,
Florian

Anzeige
Re: Combobox im sheet - wie ansprechen?
05.08.2002 10:51:11
Hans W. Herber
... kann es sein, dass es sich hier um Objekte aus der Formular, nicht der Steuerelement-ToolBox handelt?

hans

Re: Combobox im sheet - wie ansprechen?
05.08.2002 21:06:38
Florian Mueller
Hm. Ja, scheint so zu sein...
Wo ist der Unterschied, wenn ich fragen darf?

Ciao,
Florian

Re: Combobox im sheet - wie ansprechen?
06.08.2002 04:24:55
Hans W. Herber
... zumindest mal der, dass es sich nicht um OLEObjects handelt. Bei den Steuerelementen aus der Formular-Symbolleiste handelt es sich um Excel5/7-Steuerelemente, die aus Kompatibilitätsgründen unterstützt werden. Ein Vorteil dieser Elemente liegt im einfachen Ansprechen, was Dir nicht gelungen ist.

Beispiel:
ActiveSheet.DropDowns(1).List = Range("A1:A12")

hans

Anzeige
;
Anzeige

Infobox / Tutorial

Combobox im Sheet ansprechen


Schritt-für-Schritt-Anleitung

Um eine Combobox im Excel-Sheet anzusprechen, folge diesen Schritten:

  1. Combobox erstellen:

    • Gehe zu "Entwicklertools" und wähle "Einfügen".
    • Wähle die Combobox aus der "Formularsteuerelemente" oder "ActiveX-Steuerelemente".
  2. Makro zuweisen:

    • Klicke mit der rechten Maustaste auf die Combobox und wähle "Makro zuweisen".
    • Erstelle ein neues Makro oder wähle ein bestehendes.
  3. In VBA ansprechen:

    • Öffne den Visual Basic for Applications (VBA) Editor.
    • Verwende den folgenden Code, um die Combobox anzusprechen:
      Sub Beispiel()
       Dim cmb As Object
       Set cmb = ActiveSheet.DropDowns("DropDown2") ' oder der Name deiner Combobox
       cmb.List = Range("A1:A12") ' Werte zuweisen
      End Sub

Häufige Fehler und Lösungen

  • Fehler: "Object required":

    • Dieser Fehler tritt häufig auf, wenn der Name der Combobox nicht korrekt geschrieben ist. Überprüfe den Namen, den Du in der Makrozuweisung verwendet hast.
  • Fehler: Keine OLEObjects vorhanden:

    • Wenn Du das Makro für OLEObjects verwendest, stelle sicher, dass Du eine ActiveX-Combobox verwendest. Bei Formularsteuerelementen gibt es keine OLEObjects.

Alternative Methoden

Wenn das direkte Ansprechen der Combobox nicht funktioniert, kannst Du folgende Alternativen ausprobieren:

  • Verwendung von UserForms: Erstelle ein UserForm mit einer Combobox. Das Ansprechen erfolgt über die Benutzeroberfläche und ist einfacher.

  • Direktes Zuweisen von Werten: Du kannst auch direkt Werte in die Combobox einfügen, ohne auf VBA zurückzugreifen, indem Du die Eigenschaften der Combobox in den Formateinstellungen änderst.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung der Combobox:

  1. Werte aus einem Bereich zuweisen:

    Sub WerteZuweisen()
       ActiveSheet.DropDowns("DropDown2").List = Application.Transpose(Range("A1:A10"))
    End Sub
  2. Wert aus der Combobox auslesen:

    Sub WertAuslesen()
       Dim cmbWert As String
       cmbWert = ActiveSheet.DropDowns("DropDown2").Value
       MsgBox "Ausgewählter Wert: " & cmbWert
    End Sub

Tipps für Profis

  • Fehlerbehebung: Wenn Du Probleme beim Ansprechen der Combobox hast, verwende die Debugging-Funktion im VBA-Editor, um zu überprüfen, ob der Name der Combobox korrekt ist.

  • Makros automatisieren: Erstelle eine Schleife, um durch mehrere Comboboxen zu iterieren, indem Du For Each verwendest:

    For Each cmb In ActiveSheet.DropDowns
      Debug.Print cmb.Name
    Next cmb

FAQ: Häufige Fragen

1. Wie kann ich herausfinden, wie meine Combobox heißt? Du kannst dies tun, indem Du mit der rechten Maustaste auf die Combobox klickst und "Makro zuweisen" wählst. Dort wird der Name angezeigt.

2. Was ist der Unterschied zwischen Formular- und ActiveX-Comboboxen? Formular-Comboboxen sind einfacher und haben weniger Funktionen, während ActiveX-Comboboxen mehr Anpassungsmöglichkeiten und Programmieroptionen bieten.

3. Kann ich die Combobox mit VBA ansprechen, wenn ich sie im Sheet erstellt habe? Ja, Du kannst die Combobox im Sheet ansprechen, indem Du die entsprechenden VBA-Referenzen verwendest, wie im Beispiel oben 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