![]() |
|
|
![]() |
|||||||||||||
![]() |
||||||||||||||||
|
![]() |
#1 |
Registriert seit: 31.05.2004
Ort: D-NRW
Beiträge: 2.333
|
Hilfe zur Abfrage einer ComboBox in Excel benötigt
Ich möchte in Excel 2003 folgendes bewerkstelligen.
Es soll im Tabellenblatt "Tabelle1" ein Kombinationsfeld mit mehreren Auswahlmöglichkeiten angelegt werden, nennen wir sie hier mal AAA,BBB,CCC,DDD und EEE. Diese Inhalte werden aus einem anderen Tabellenblatt als "Eingabebereich" übernommen. Das hat soweit schonmal geklappt ![]() Je nach Auswahl sollen dann zwei unterschiedliche Makros ausgeführt werden. Diese sind auch schon wie folgt erstellt worden: Code:
Sub Makro2() Range("B19:D19").Select With Selection.Interior .ColorIndex = 36 .Pattern = xlSolid .PatternColorIndex = xlAutomatic End With Selection.Locked = False Selection.FormulaHidden = False Range("B19").Select ActiveCell.FormulaR1C1 = "DU" Range("B19").Select End Sub ![]() Mit dem nächsten Makro3 soll bei der Auswahl AAA oder BBB der Zellbereich wieder "gesperrt" werden und die Hintergrundfarbe als auch enthaltener Text wieder gelöscht werden. Auch das Makro klappt soweit schon. Code:
Sub Makro3() Range("B19:D19").Select Selection.Interior.ColorIndex = xlNone Selection.Locked = True Selection.FormulaHidden = False Selection.ClearContents Range("B19").Select End Sub Das Problem was ich jetzt habe: Wie weise ich dem Kombinationsfeld diese beiden Makros zu bzw. mit welcher Funktion kann ich die getätigte Auswahl (entweder den 1:1 Text oder die Position der Auswahl) des Kombinationsfeldes abfragen und dann eines der beiden Makros ausführen? Irgendwie nach dem Motto: If Worksheets("Tabelle1").ComboBox1.value = 0 OR 1 Then Makro2() Else Makro3() Irgendwie kann man doch auch bestimmt den Eintrag AAA in der ComboBox voreinstellen, nur wie? Irgendwie nach dem Motto: ComboBox1.ListIndex = "0" aber wo genau muss das hin? Siehe auch Screenshot: ![]()
__________________
Gruß aus NRW Stefan |
![]() |
![]() |
Sponsored Links | |
|
![]() |
#2 |
Registriert seit: 17.02.2004
Ort: Niederösterreich
Beiträge: 799
|
Ich glaube die einfachste Möglichkeit ist:
Im Edit-Modus Doppelklick auf die ComboBox kannst du in Visual Basic die Bedingungen für das ausführen der Macros eingeben. Code:
Private Sub ComboBox1_Change() If Range("A1") = Range("B16") Then Macro2 Else Macro3 End Sub Ich hoffe das funzt... Edit: Wenn du willst, schicke ich dir das EXCEL-Sheet.
__________________
Grüße, Manfred ![]() |
![]() |
![]() |
![]() |
#3 | |
Themenersteller
Registriert seit: 31.05.2004
Ort: D-NRW
Beiträge: 2.333
|
Zitat:
![]() EDIT: Wenn ich Entwurfsmodus doppelt auf die Combobox klicke kommt bei mir nur das Eigenschaftsfeld und keine Möglichkeit irgendwo Code zu ändern. Wenn ich die combobox anwähle und dann in der Steuerelemete-Toolbox auf "Code anzeigen" klicken, bin ich zwar in VisualBaisc drin, aber da finde ich keinerlei Einträge zur Combobox ![]()
__________________
Gruß aus NRW Stefan |
|
![]() |
![]() |
![]() |
#4 | ||
Registriert seit: 17.02.2004
Ort: Niederösterreich
Beiträge: 799
|
Zitat:
__________________
Grüße, Manfred ![]() |
||
![]() |
![]() |
![]() |
#5 | |||
Themenersteller
Registriert seit: 31.05.2004
Ort: D-NRW
Beiträge: 2.333
|
Zitat:
![]()
__________________
Gruß aus NRW Stefan |
|||
![]() |
![]() |
Sponsored Links | |
|
![]() |
#6 | ||||
Registriert seit: 17.02.2004
Ort: Niederösterreich
Beiträge: 799
|
Zitat:
Unter 'Eigenschaften' LinkedCell und ListFillRange einstellen Unter 'Code anzeigen' die Bedingung für die Macros (siehe E-Mail oder weiter oben) eingeben. Und dann sollte es gehen.
__________________
Grüße, Manfred ![]() |
||||
![]() |
![]() |
![]() |
#7 |
Themenersteller
Registriert seit: 31.05.2004
Ort: D-NRW
Beiträge: 2.333
|
Danke für die Datei.
Irgendwas ist da bei mir wohl beim anlegen der Combibox schief gelaufen (als welchen Gründen auch immer). Ich werde mir das jetzt mal genauer an deiner Datei angucken ![]()
__________________
Gruß aus NRW Stefan |
![]() |
![]() |
![]() |
#8 |
Themenersteller
Registriert seit: 31.05.2004
Ort: D-NRW
Beiträge: 2.333
|
Ah, jetzt ja
![]() Kannst du mir auch noch einen Tip geben, wie ich das auch ohne die Range-Abfrage bewerkstelligen kann, da ich dafür noch ein extra Feld zum Vergleichen anlegen müsste. Wenn man den Wert mit ComboBox1.value abfragen würde, könnte man sich das zusätzliche Feld zum Vergleichen nämlich auch noch sparen. Und eventuell noch einen Tip, wie ich aus der Kombibox schon einen festen Menüpunkt voreinstellen kann.
__________________
Gruß aus NRW Stefan |
![]() |
![]() |
![]() |
#9 | |
Registriert seit: 17.02.2004
Ort: Niederösterreich
Beiträge: 799
|
Zitat:
![]()
__________________
Grüße, Manfred ![]() |
|
![]() |
![]() |
![]() |
#10 |
Themenersteller
Registriert seit: 31.05.2004
Ort: D-NRW
Beiträge: 2.333
|
Super, danke dir
![]() ![]() ![]()
__________________
Gruß aus NRW Stefan |
![]() |
![]() |
Sponsored Links | |
|
![]()
|
|
|