Avatar billede hpo Nybegynder
28. oktober 2009 - 11:04 Der er 16 kommentarer og
1 løsning

Tabeller i excel vis/skjul

Hej eksperter

Jeg har et regneark med 3 sæt af tabeller efter hinanden. Jeg har brug for en smart måde a'la combo box til at vise hver af de tre tabeller særskilt.

Min tabeller hedder f.eks.
Total
Marked 1
Marked 2

og består hver i sær af to tabeller. Alle tabeller har samme forspalte (kundegruppering)

Kan nogen hjælpe?
Avatar billede jkrons Professor
28. oktober 2009 - 11:57 #1
Dette er noget, jeg har lavwet i anden anledning. Koden ligger i kodemodulet til det ark, hvor jeg har min PullDown, som indeholde navnene på de områder, som jeg kan vælge mellem.

Koden skjuler/viser kolonner, men kan hurtigt ændres til i stedet at vise/skjule rækker.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("a2")) Is Nothing Then
        Select Case Range("a2").Value
            Case Is = "Alle"
                Cells.Select
                Selection.EntireColumn.Hidden = False
                Range("A2").Select
            Case Is = "SKP1"
                Cells.Select
                Selection.EntireColumn.Hidden = False
                Range("J:AD").Select
                Selection.EntireColumn.Hidden = True
                Range("A2").Activate
            Case Is = "SKP2"
                Cells.Select
                Selection.EntireColumn.Hidden = False
                Range("B:I,T:AD").Select
                Selection.EntireColumn.Hidden = True
                Range("A2").Activate
            Case Is = "SKP3"
                Cells.Select
                Selection.EntireColumn.Hidden = False
                Range("B:S").Select
                Selection.EntireColumn.Hidden = True
                Range("A2").Activate
        End Select
    End If
End Sub
Avatar billede hpo Nybegynder
28. oktober 2009 - 13:00 #2
Det virker næsten.

Jeg har korrigeret koden således:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("a2")) Is Nothing Then
        Select Case Range("a2").Value
            Case Is = "Total"
                Cells.Select
                Selection.EntireRow.Hidden = False
                Range("a80:a190").Select
                Selection.EntireRow.Hidden = True
                Range("A2").Activate
            Case Is = "SEL1"
                Cells.Select
                Selection.EntireRow.Hidden = False
                Range("a3:a79").Select
                Selection.EntireRow.Hidden = True
                Range("a132:a190").Select
                Selection.EntireRow.Hidden = True
                Range("A2").Activate
            Case Is = "SEL2"
                Cells.Select
                Selection.EntireRow.Hidden = False
                Range("a3:a131").Select
                Selection.EntireColumn.Hidden = True
                Range("A2").Activate
            Case Is = "All"
                Cells.Select
                Selection.EntireRow.Hidden = False
                Range("A2").Activate
               
        End Select
    End If
End Sub
________________

Men makroen aktiveres jo kun ved en ændring af A2-cellen, og dette sker jo ikke automatisk. Kan du hjælpe med dette?

pft
hpo
Avatar billede hpo Nybegynder
28. oktober 2009 - 13:00 #3
Men tak for koden :)
Avatar billede jkrons Professor
28. oktober 2009 - 13:51 #4
I det konkrete tilfælde skrives resultatet af et ændret valg i komboksen ned i A2. derfor er det ændringen her, der "trigger" makroen. Hvornår skal den afspilles hos dig?
Avatar billede hpo Nybegynder
28. oktober 2009 - 13:53 #5
Jeps - det er rigtigt - jeg ser at resultat ændrer sig i cellen, men makroen aktiveres først, hvis jeg efterfølgende stiller mig i A2 og trykker "F2 + enter".

Makroen skal aktiveres med det samme.

/hpo
Avatar billede jkrons Professor
28. oktober 2009 - 14:16 #6
Det lyder godt nok underligt. Hos mig kører den fint, hver gang jeg ændrer i dropdownboksen. Er arket sat til manuel beregning?
Avatar billede hpo Nybegynder
28. oktober 2009 - 14:25 #7
Nej - automatisk.

Jeg har valgt en combo-boks, og kan se at værdien i A2 ændrer sig, men makroen trigges først når jeg ændrer, som anført ovenfor.

Smid et svar. Det lader til at jeg sidder fast :(
Avatar billede jkrons Professor
28. oktober 2009 - 14:40 #8
Et svar :-)

Prøv at tilføje Application.Volatile som den første linie efter Sub og se om det gør nogen forskel.
Avatar billede excelent Ekspert
28. oktober 2009 - 17:44 #9
skal koden ikke indsættes i ComboBoxen ?
Avatar billede jkrons Professor
28. oktober 2009 - 22:15 #10
Excelent-> Jeg har koden liggende i arkmodulet på Worksheet_Change hændelsen. Dette indtræffer jo hver gang jeg ændrer i comboboksen.
Avatar billede excelent Ekspert
28. oktober 2009 - 23:18 #11
ja men den kode trikker ikke ved valg i comboboxen, selv om der er link til A2
Avatar billede jkrons Professor
28. oktober 2009 - 23:48 #12
Nej selvfølgelig ikke. Det er fordi jeg slet ikke bruger en comboboks men i stedet datavalidering :-(
Avatar billede excelent Ekspert
28. oktober 2009 - 23:55 #13
;-)
Avatar billede hpo Nybegynder
29. oktober 2009 - 11:18 #14
Hvordan indsætter jeg koden i combo-boksen?

/hpo
Avatar billede jkrons Professor
29. oktober 2009 - 12:04 #15
Højreklik på Compoboxen. Vælg Vis kode. Indsæt din kode mellem de to linjer, der er vist:

If Not Intersect(Target, Range("a2")) Is Nothing Then
        Select Case Range("a2").Value
            Case Is = "Total"
                Cells.Select
                Selection.EntireRow.Hidden = False
                Range("a80:a190").Select
                Selection.EntireRow.Hidden = True
                Range("A2").Activate
            Case Is = "SEL1"
                Cells.Select
                Selection.EntireRow.Hidden = False
                Range("a3:a79").Select
                Selection.EntireRow.Hidden = True
                Range("a132:a190").Select
                Selection.EntireRow.Hidden = True
                Range("A2").Activate
            Case Is = "SEL2"
                Cells.Select
                Selection.EntireRow.Hidden = False
                Range("a3:a131").Select
                Selection.EntireColumn.Hidden = True
                Range("A2").Activate
            Case Is = "All"
                Cells.Select
                Selection.EntireRow.Hidden = False
                Range("A2").Activate
               
        End Select
    End If
Avatar billede jkrons Professor
29. oktober 2009 - 12:06 #16
Og det er selvfølgelig ikke rigtigt, for når du bruger comboboxen kan du ikke bruge target. Så slet If not... og End if.. i den anden ende.
Avatar billede hpo Nybegynder
29. oktober 2009 - 14:11 #17
OK.

Tak til jer begge, point til jkrons.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester