Makro mit 2 Dropdown

Moderator: ModerationP

Makro mit 2 Dropdown

Beitragvon Julia2303 » 14. Feb 2019, 11:45

Hallo Zusammen,

ich würde gerne ein Makro so programmieren, dass sich die Tabelle je nachdem was in den beiden Dropdowns ausgewählt ist, anpasst.

Momentan sieht das ganze so aus:
Code: Alles auswählen
rivate Sub Worksheet_Change(ByVal Target As Range)

If Target.Adress = "$B$3" Then

    Select Case Target.Value
   
        Case "Comment"
       
    'Variable Spalte
    If Cells(1, 2).Value = "$B$1" Then

         
        ' Nimm den Wert des geänderten Bereiches
        Select Case Target.Value
           
            Case "(All figures)"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
               
                ' Blende Spalten aus
                Columns("a:lw").EntireColumn.Hidden = False
               
            Case "MCR02"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("a").EntireColumn.Hidden = True
                Columns("n:x").EntireColumn.Hidden = True
                Columns("ad:do").EntireColumn.Hidden = True
                Columns("dj:ev").EntireColumn.Hidden = True
                Columns("fd").EntireColumn.Hidden = True
                Columns("fk").EntireColumn.Hidden = True
                Columns("fn:lp").EntireColumn.Hidden = True
             
           
            Case "MCR03"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten  aus
                Columns("n:x").EntireColumn.Hidden = True
                Columns("ah:bp").EntireColumn.Hidden = True
                Columns("bv:dh").EntireColumn.Hidden = True
                Columns("dn:fl").EntireColumn.Hidden = True
                Columns("ft").EntireColumn.Hidden = True
                Columns("ga").EntireColumn.Hidden = True
                Columns("gd:lp").EntireColumn.Hidden = True
               
               
            Case "MCR04"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten  aus
               
                 Columns("h:l").EntireColumn.Hidden = True
                Columns("t:ab").EntireColumn.Hidden = True
                Columns("al:bt").EntireColumn.Hidden = True
                Columns("bz:dl").EntireColumn.Hidden = True
                Columns("dr:gb").EntireColumn.Hidden = True
                Columns("gj").EntireColumn.Hidden = True
                Columns("gq").EntireColumn.Hidden = True
                Columns("gt:lp").EntireColumn.Hidden = True
               
               
             Case "MCR05"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten  aus
                Columns("h:l").EntireColumn.Hidden = True
                Columns("t:af").EntireColumn.Hidden = True
                Columns("ap:bx").EntireColumn.Hidden = True
                Columns("cd:dp").EntireColumn.Hidden = True
                Columns("dv:gr").EntireColumn.Hidden = True
                Columns("gz").EntireColumn.Hidden = True
                Columns("hg").EntireColumn.Hidden = True
                Columns("hj:lp").EntireColumn.Hidden = True
               
               
             Case "MCR06"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:aj").EntireColumn.Hidden = True
                Columns("at:cb").EntireColumn.Hidden = True
                Columns("ch:dt").EntireColumn.Hidden = True
                Columns("dz:hh").EntireColumn.Hidden = True
                Columns("hp").EntireColumn.Hidden = True
                Columns("hw").EntireColumn.Hidden = True
                Columns("hy:lp").EntireColumn.Hidden = True
               
               
            Case "MCR07"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:an").EntireColumn.Hidden = True
                Columns("ax:cf").EntireColumn.Hidden = True
                Columns("cl:dx").EntireColumn.Hidden = True
                Columns("ed:hx").EntireColumn.Hidden = True
                Columns("if").EntireColumn.Hidden = True
                Columns("im").EntireColumn.Hidden = True
                Columns("io:lp").EntireColumn.Hidden = True
               
            Case "MCR08"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:ar").EntireColumn.Hidden = True
                Columns("bb:cj").EntireColumn.Hidden = True
                Columns("cp:eb").EntireColumn.Hidden = True
                Columns("eh:in").EntireColumn.Hidden = True
                Columns("iv").EntireColumn.Hidden = True
                Columns("jc").EntireColumn.Hidden = True
                Columns("je:lp").EntireColumn.Hidden = True
               
            Case "MCR09"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:av").EntireColumn.Hidden = True
                Columns("bf:co").EntireColumn.Hidden = True
                Columns("cs:ef").EntireColumn.Hidden = True
                Columns("el:je").EntireColumn.Hidden = True
                Columns("jl").EntireColumn.Hidden = True
                Columns("js").EntireColumn.Hidden = True
                Columns("ju:lp").EntireColumn.Hidden = True
               
             Case "MCR10"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:av").EntireColumn.Hidden = True
                Columns("bi:cr").EntireColumn.Hidden = True
                Columns("cw:ej").EntireColumn.Hidden = True
                Columns("em:ju").EntireColumn.Hidden = True
                Columns("kb").EntireColumn.Hidden = True
                Columns("ki").EntireColumn.Hidden = True
                Columns("kl:lp").EntireColumn.Hidden = True
               
             Case "MCR11"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:s").EntireColumn.Hidden = True
                Columns("z:be").EntireColumn.Hidden = True
                Columns("bn:cw").EntireColumn.Hidden = True
                Columns("db:em").EntireColumn.Hidden = True
                Columns("et:kj").EntireColumn.Hidden = True
                Columns("kr").EntireColumn.Hidden = True
                Columns("ky").EntireColumn.Hidden = True
                Columns("la:lp").EntireColumn.Hidden = True
               
            Case "MCR12"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:s").EntireColumn.Hidden = True
                Columns("z:bh").EntireColumn.Hidden = True
                Columns("bo:cz").EntireColumn.Hidden = True
                Columns("de:er").EntireColumn.Hidden = True
                Columns("ew:kz").EntireColumn.Hidden = True
                Columns("lh").EntireColumn.Hidden = True
                Columns("lo").EntireColumn.Hidden = True
                               

       
       
        Case Else
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten A:LW ein
                Columns("a:lw").EntireColumn.Hidden = False
               
     End Select
       
        ' Setze den Cursor zurück auf "B1"
        Target.Select

    End If
   
Case "Dashboard"
     'Variable Spalte
    If Target.Address = "$B$1" Then
         
        ' Nimm den Wert des geänderten Bereiches
        Select Case Target.Value
           
            Case "(All figures)"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
               
                ' Blende Spalten aus
                Columns("a:lw").EntireColumn.Hidden = False
               
            Case "MCR02"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("a").EntireColumn.Hidden = True
                Columns("n:x").EntireColumn.Hidden = True
                Columns("ad:do").EntireColumn.Hidden = True
                Columns("dj:ev").EntireColumn.Hidden = True
                Columns("fb:fc").EntireColumn.Hidden = True
                Columns("fi:fj").EntireColumn.Hidden = True
                Columns("fn:lp").EntireColumn.Hidden = True
             
           
            Case "MCR03"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten  aus
                Columns("n:x").EntireColumn.Hidden = True
                Columns("ah:bp").EntireColumn.Hidden = True
                Columns("bv:dh").EntireColumn.Hidden = True
                Columns("dn:fl").EntireColumn.Hidden = True
                Columns("fr:fs").EntireColumn.Hidden = True
                Columns("fy:fz").EntireColumn.Hidden = True
                Columns("gd:lp").EntireColumn.Hidden = True
               
               
            Case "MCR04"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten  aus
               
                 Columns("h:l").EntireColumn.Hidden = True
                Columns("t:ab").EntireColumn.Hidden = True
                Columns("al:bt").EntireColumn.Hidden = True
                Columns("bz:dl").EntireColumn.Hidden = True
                Columns("dr:gb").EntireColumn.Hidden = True
                Columns("gh:gi").EntireColumn.Hidden = True
                Columns("go:gp").EntireColumn.Hidden = True
                Columns("gt:lp").EntireColumn.Hidden = True
               
               
             Case "MCR05"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten  aus
                Columns("h:l").EntireColumn.Hidden = True
                Columns("t:af").EntireColumn.Hidden = True
                Columns("ap:bx").EntireColumn.Hidden = True
                Columns("cd:dp").EntireColumn.Hidden = True
                Columns("dv:gr").EntireColumn.Hidden = True
                Columns("gx:gy").EntireColumn.Hidden = True
                Columns("he:hf").EntireColumn.Hidden = True
                Columns("hj:lp").EntireColumn.Hidden = True
               
               
             Case "MCR06"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:aj").EntireColumn.Hidden = True
                Columns("at:cb").EntireColumn.Hidden = True
                Columns("ch:dt").EntireColumn.Hidden = True
                Columns("dz:hh").EntireColumn.Hidden = True
                Columns("hn:ho").EntireColumn.Hidden = True
                Columns("hu:hv").EntireColumn.Hidden = True
                Columns("hy:lp").EntireColumn.Hidden = True
               
               
            Case "MCR07"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:an").EntireColumn.Hidden = True
                Columns("ax:cf").EntireColumn.Hidden = True
                Columns("cl:dx").EntireColumn.Hidden = True
                Columns("ed:hx").EntireColumn.Hidden = True
                Columns("id:ie").EntireColumn.Hidden = True
                Columns("ik:il").EntireColumn.Hidden = True
                Columns("io:lp").EntireColumn.Hidden = True
               
            Case "MCR08"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:ar").EntireColumn.Hidden = True
                Columns("bb:cj").EntireColumn.Hidden = True
                Columns("cp:eb").EntireColumn.Hidden = True
                Columns("eh:in").EntireColumn.Hidden = True
                Columns("it:iu").EntireColumn.Hidden = True
                Columns("ja:jb").EntireColumn.Hidden = True
                Columns("je:lp").EntireColumn.Hidden = True
               
            Case "MCR09"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:av").EntireColumn.Hidden = True
                Columns("bf:co").EntireColumn.Hidden = True
                Columns("cs:ef").EntireColumn.Hidden = True
                Columns("el:je").EntireColumn.Hidden = True
                Columns("jj:jk").EntireColumn.Hidden = True
                Columns("jq:jr").EntireColumn.Hidden = True
                Columns("ju:lp").EntireColumn.Hidden = True
               
             Case "MCR10"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:av").EntireColumn.Hidden = True
                Columns("bi:cr").EntireColumn.Hidden = True
                Columns("cw:ej").EntireColumn.Hidden = True
                Columns("em:ju").EntireColumn.Hidden = True
                Columns("jz:ka").EntireColumn.Hidden = True
                Columns("kg:kh").EntireColumn.Hidden = True
                Columns("kl:lp").EntireColumn.Hidden = True
               
             Case "MCR11"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:s").EntireColumn.Hidden = True
                Columns("z:be").EntireColumn.Hidden = True
                Columns("bn:cw").EntireColumn.Hidden = True
                Columns("db:em").EntireColumn.Hidden = True
                Columns("et:kj").EntireColumn.Hidden = True
                Columns("kp:kq").EntireColumn.Hidden = True
                Columns("kw:kx").EntireColumn.Hidden = True
                Columns("la:lp").EntireColumn.Hidden = True
               
            Case "MCR12"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:s").EntireColumn.Hidden = True
                Columns("z:bh").EntireColumn.Hidden = True
                Columns("bo:cz").EntireColumn.Hidden = True
                Columns("de:er").EntireColumn.Hidden = True
                Columns("ew:kz").EntireColumn.Hidden = True
                Columns("lf:lg").EntireColumn.Hidden = True
                Columns("lm:ln").EntireColumn.Hidden = True
                               
       
       
        Case Else
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten A:JJ ein
                Columns("a:lw").EntireColumn.Hidden = False
               
     End Select
       
        ' Setze den Cursor zurück auf "B3"
        Target.Select
 End If
 
    End Select
   
End If

 
   
End Sub


Leider funktioniert es nicht :( :( :(

Kann mir jemand weiterhelfen?

Vielen Dank und liebe Grüße
Julia2303
 

Re: Makro mit 2 Dropdown

Beitragvon DerHoepp » 14. Feb 2019, 11:52

Hi,

Leider funktioniert es nicht

Das ist die denkbar schlechteste Fehlerbeschreibung. Ich rate mal, dass du vergessen hast, 84 durch 2 zu teilen.

Also:
Was funktioniert nicht? Gibt es Fehlermeldungen? Welche? An welcher Stelle im Code, Welchen wert hat welche Variable zu dem Zeitpunkt? Was passiert im Einzelschrittmodus? In welchem Punkt weicht das Verhalten deines Codes von deinem erwarteten Verhalten ab? Was sind für dich "Dropdowns"? Was willst du eigentlich erreichen? Hast du dich mal mit benutzerdefinierten Ansichten beschäftigt? Die könnten dich unterstützen.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7660
Registriert: 14. Mai 2013, 11:08

Re: Makro mit 2 Dropdown

Beitragvon Julia2303 » 14. Feb 2019, 13:01

Meine Dropdowns sollen beinhalten:
1. "Gesamtsicht, MCR02, MCR03, ..., MCR12"
2. "Comment, Dashboard"

Bei Gesamtsicht soll alles eingeblendet werden.
jeweilige MCR: nur die Spalten die für die jeweilig ausgewählte Zahl wichtig sind

Beim zweiten Dropdown soll das gleiche geschehen wie oben, nur dass bei Comment 1 weitere Spalte ausgblendet wird und bei Dashboard 2 weitere (pro MCR).

Zuallererst hatte ich nur das 1. Dropdown und folgenden Code geschrieben:

Code: Alles auswählen
Private Sub Worksheet_Change(ByVal Target As Range)
   
    'Variable Spalte
    If Target.Address = "$B$1" Then
         
        ' Nimm den Wert des geänderten Bereiches
        Select Case Target.Value
           
            Case "(All figures)"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
               
                ' Blende Spalten aus
                Columns("a:jj").EntireColumn.Hidden = False
               
            Case "MCR02"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("a").EntireColumn.Hidden = True
                Columns("n:x").EntireColumn.Hidden = True
                Columns("ad:do").EntireColumn.Hidden = True
                Columns("dj:ev").EntireColumn.Hidden = True
                Columns("fn:lp").EntireColumn.Hidden = True
             
           
            Case "MCR03"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten  aus
                Columns("n:x").EntireColumn.Hidden = True
                Columns("ah:bp").EntireColumn.Hidden = True
                Columns("bv:dh").EntireColumn.Hidden = True
                Columns("dn:fl").EntireColumn.Hidden = True
                Columns("gd:lp").EntireColumn.Hidden = True
               
               
            Case "MCR04"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten  aus
               
                 Columns("h:l").EntireColumn.Hidden = True
                Columns("t:ab").EntireColumn.Hidden = True
                Columns("al:bt").EntireColumn.Hidden = True
                Columns("bz:dl").EntireColumn.Hidden = True
                Columns("dr:gb").EntireColumn.Hidden = True
                Columns("gt:lp").EntireColumn.Hidden = True
               
               
             Case "MCR05"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten  aus
                Columns("h:l").EntireColumn.Hidden = True
                Columns("t:af").EntireColumn.Hidden = True
                Columns("ap:bx").EntireColumn.Hidden = True
                Columns("cd:dp").EntireColumn.Hidden = True
                Columns("dv:gr").EntireColumn.Hidden = True
                Columns("hj:lp").EntireColumn.Hidden = True
               
               
             Case "MCR06"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:aj").EntireColumn.Hidden = True
                Columns("at:cb").EntireColumn.Hidden = True
                Columns("ch:dt").EntireColumn.Hidden = True
                Columns("dz:hh").EntireColumn.Hidden = True
                Columns("hy:lp").EntireColumn.Hidden = True
               
               
            Case "MCR07"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:an").EntireColumn.Hidden = True
                Columns("ax:cf").EntireColumn.Hidden = True
                Columns("cl:dx").EntireColumn.Hidden = True
                Columns("ed:hx").EntireColumn.Hidden = True
                Columns("io:lp").EntireColumn.Hidden = True
               
            Case "MCR08"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:ar").EntireColumn.Hidden = True
                Columns("bb:cj").EntireColumn.Hidden = True
                Columns("cp:eb").EntireColumn.Hidden = True
                Columns("eh:in").EntireColumn.Hidden = True
                Columns("je:lp").EntireColumn.Hidden = True
               
            Case "MCR09"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:av").EntireColumn.Hidden = True
                Columns("bf:co").EntireColumn.Hidden = True
                Columns("cs:ef").EntireColumn.Hidden = True
                Columns("el:je").EntireColumn.Hidden = True
                Columns("ju:lp").EntireColumn.Hidden = True
               
             Case "MCR10"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:r").EntireColumn.Hidden = True
                Columns("z:av").EntireColumn.Hidden = True
                Columns("bi:cr").EntireColumn.Hidden = True
                Columns("cw:ej").EntireColumn.Hidden = True
                Columns("em:ju").EntireColumn.Hidden = True
                Columns("kl:lp").EntireColumn.Hidden = True
               
             Case "MCR11"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:s").EntireColumn.Hidden = True
                Columns("z:be").EntireColumn.Hidden = True
                Columns("bn:cw").EntireColumn.Hidden = True
                Columns("db:em").EntireColumn.Hidden = True
                Columns("et:kj").EntireColumn.Hidden = True
                Columns("la:lp").EntireColumn.Hidden = True
               
            Case "MCR12"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten aus
                Columns("h:s").EntireColumn.Hidden = True
                Columns("z:bh").EntireColumn.Hidden = True
                Columns("bo:cz").EntireColumn.Hidden = True
                Columns("de:er").EntireColumn.Hidden = True
                Columns("ew:kz").EntireColumn.Hidden = True
                               

       
       
        Case Else
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten A:JJ ein
                Columns("a:jj").EntireColumn.Hidden = False
               
     End Select
       
        ' Setze den Cursor zurück auf "B1"
        Target.Select

    End If
   
End Sub


Das hat auch funktioniert!

Und jetzt würde ich eben noch gerne das zweite Dropdown mti "Comment" und "Dashboard" irgendwie einfügen.

Viele Grüße

Julia
Julia2303
 

Re: Makro mit 2 Dropdown

Beitragvon DerHoepp » 14. Feb 2019, 13:55

Hi,

hmm. Das fühlt sich an, als hättest du von meinen acht Fragen eine halbe beantwortet:
Was funktioniert nicht?

-
Gibt es Fehlermeldungen? Welche?

-
An welcher Stelle im Code, Welchen wert hat welche Variable zu dem Zeitpunkt?

-
Was passiert im Einzelschrittmodus?

-
In welchem Punkt weicht das Verhalten deines Codes von deinem erwarteten Verhalten ab?

-
Was sind für dich "Dropdowns"?

-
Was willst du eigentlich erreichen?

Ich möchte je nach Auswahl aus zwei "Dropdowns" unterschiedliche Zeilen sichtbar halten.
Hast du dich mal mit benutzerdefinierten Ansichten beschäftigt? Die könnten dich unterstützen.

-

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7660
Registriert: 14. Mai 2013, 11:08


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: TommyDerWalker und 36 Gäste