Clever-Excel-Forum

Normale Version: Select Case auf Dropdown (nicht ActiveX)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hey Leute,

ich habe hier eine Dropdown mit den Werten 1-6 und möchte darauf basierend eine selct case laufen lassen.
Weiß jemand, ob das irgendwie geht?

Bei folgendem Code bleibt er schon bei Select hängen :27:
Code:
Sub Dropdown11_BeiÄnderung()
Select Case Dropdown11.Value
Case 1
   Rows("12:12").Select
   Selection.EntireRow.Hidden = False
   Rows("13:17").Select
   Selection.EntireRow.Hidden = True
Case 2
   Rows("12:13").Select
   Selection.EntireRow.Hidden = False
   Rows("14:17").Select
   Selection.EntireRow.Hidden = True
End Select
End Sub
Hallo,

was für ein "Dropdown" verwendest du denn? Falls das ein Kombinationsfeld ist, würde das so gehen:

Code:
Private Sub ComboBox1_Change()
   Select Case ComboBox1.ListIndex
       Case 0
           Rows("12:12").EntireRow.Hidden = False
           Rows("13:17").EntireRow.Hidden = True
       Case 1
           Rows("12:13").EntireRow.Hidden = False
           Rows("14:17").EntireRow.Hidden = True
   End Select
End Sub
Hi Klaus,

am Makronamen des TE sieht man doch, dass es um ein Formularsteuerelement geht. Wink

Gruß Uwe
Hallo                Ein hoch auf die uralten Excel 97 Befehle ...

schön das wir jetzt wissen das es sich um ein Formularsteuerelement handelt.   Sorry, hilft das dem Frager wirklich weiter???

Ich musste auch zuerst eine Weile überlegen wie man das mit heutiger Programmiersprache elegant lösen kann.
Meine Taktik solche Faelle zu knacken ist und bleibt das alte Excel 97 mit dem uralten Befehl  "DrawingObjects" 
Erst nachdem ich damit die ComboBox ans laufen brachte schaute ich mich nach besseren Lösungen um.  Ergebnis s. unten

Es geht mit:  ActiveSheet.DropDowns("Dropdown11")  oder Indexzahl DropDowns(x).  Die Index Nr. zeigt einem das 2. Makro!

mfg  Gast 123


Code:
Sub Dropdown11_BeiÄnderung()
'With ActiveSheet.DrawingObjects("Dropdown11")
With ActiveSheet.DropDowns("Dropdown11")
Select Case .Value
Case 1
  MsgBox .Value
Case 2
  MsgBox .Value
End Select
End With
End Sub


Sub Index_ermitteln()
MsgBox ActiveSheet.DropDowns("Dropdown11").Index
End Sub

mfg  Gast 123
(28.01.2019, 12:11)Kuwer schrieb: [ -> ]Hi Klaus,

am Makronamen des TE sieht man doch, dass es um ein Formularsteuerelement geht. Wink

Gruß Uwe

Genau, es ist ein Formularsteuerelement.

Kann man da irgendwie mit Select drauf zugreifen?

ActiveX Elemente kann ich bei mir nicht verwenden, da die alle völlig wild die Größe und Schriftgröße beim klicken ändern. Extrem nervig.
@Gast 123

Wenn ich deinen Code exakt so einfüge kommt Laufzeitfehler 1004
"Die DropDown Eigenschaft des Worksheet-Objekts kann nicht zugeordnet werden"


Das With ActiveSheet.DropDowns("Dropdown11") mag er wohl nicht.
Habe nochmal nachgeschaut, der Name Dropdown11 stimmt auf jeden Fall.
Hallo Max,

Formularsteuerelemente kann man nicht programmieren.
Und was mache ich nun?

Ich brauche auf jeden Fall einige Checkboxen und Kontrollkästchen.

Die ActiveX Steuerelemente ändern bei mir beim Klick aber ständig ihre Größe oder Schriftart, so dass ich diese überhaupt nicht nutzen kann.
Und die Formularsteuerelemente lassen sich nicht programmieren.

D.h. ich kann mein Projekt nicht umsetzen - oder ich baue ALLES (30 Seiten voll mit Logik) neu auf und hoffe, dass die ActiveX Steuerelemente dann funktionieren Angry
Hallo,
Sub Dropdown11_BeiÄnderung()
Select Case ActiveSheet.DropDowns(Application.Caller).Value
Case 1
Rows("12:12").Hidden = False
Rows("13:17").Hidden = True
Case 2
Rows("12:13").Hidden = False
Rows("14:17").Hidden = True
End Select
End Sub
Gruß Uwe
Diese Code reicht:


Code:
Sub M_snb()
     Rows("12:17").Hidden = False
     Rows(12).Offset(DropDowns(1).Value).Resize(5 - DropDowns(1).Value).Hidden = True
End Sub


30 Seiten voll mit Logik: ich bezweifle das.
Seiten: 1 2