Avatar billede banazmi Nybegynder
07. december 2004 - 17:37 Der er 7 kommentarer og
1 løsning

ark vis/skjul

Hvis man har en celle med valideringslist eks. "jan", "feb", "mar".
og så har man nogle arkke med navn f.eks. "jan", "feb", "mar".
mening er når man vælger "jan" i cellen , så skal ark "jan"  vises ellers skal den være skjult og hvis man vælger "mar" i cellen, skal ark "mar" vises og andre skal være skult osv.
Er der en der kan lige trylle med en lille kode.
Avatar billede bak Forsker
07. december 2004 - 17:58 #1
Jeg forudsætter at du har et ark fremme, der hedder front. (den med datavalideringscellen), Datavaideringscellen er A1

Denne kode indsættes i arkets eget kodemodul (højreklik på erkfanen og vælg "Vis programkoder".

Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh
If Not Intersect(Target, Range("A1")) Is Nothing Then
    For Each sh In ActiveWorkbook.Sheets
        'her ændre du Front til det navn du ønsker
        If sh.Name <> "Front" Then
            sh.Visible = xlSheetHidden
        End If
    Next
    Sheets(Target.Value).Visible = xlSheetVisible
End If
End Sub
Avatar billede banazmi Nybegynder
07. december 2004 - 18:34 #2
Det virkede ikke for mig.
Min front ark hedder: "humørbarometer" og datavalideringscelle er "C8" og data er: "oktober_2004" , "november_2004" og "december_2004".
arkkene som skal vises eller skjules hedder: "bem_oktober_2004" , "bem_november_2004" og "bem_december_2004".
Avatar billede bak Forsker
07. december 2004 - 20:18 #3
Ok, det stemmer jo ikke helt med dit 1. eksempel.
I denne her skal data i datavalideringen bare indgå i arknavnet.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh
If Not Intersect(Target, Range("C8")) Is Nothing Then
    For Each sh In ActiveWorkbook.Sheets
        If sh.Name <> "Humørbarometer" Then
            If Not UCase(sh.Name) Like "*" & UCase(Target.Value) & "*" Then
            sh.Visible = xlSheetHidden
            Else
            sh.Visible = xlSheetVisible
            End If
        End If
    Next
End If
End Sub
Avatar billede banazmi Nybegynder
07. december 2004 - 22:16 #4
Det var smart og det virkede.
Har du mulighed for at skrive kommentar til koden, så jeg kan forstår hvornår sker hvad.
Avatar billede bak Forsker
07. december 2004 - 22:40 #5
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh
'Hvis Target (cellen der er ændret), er celle C8
If Not Intersect(Target, Range("C8")) Is Nothing Then
    'gennemgå alle ark i projektmappen
    For Each sh In ActiveWorkbook.Sheets
        'hvis arkets navn er forsk. fra "Humørbarometer"
        '(for ikke at få skjult "humørbarometer)
        If sh.Name <> "Humørbarometer" Then
            'hvis ikke arknavnet (store bogstaver) ligner det, der står i C8 (store bogstaver)
            'så skjul arket ellers, hvis det ligner så vis arket
           
            If Not UCase(sh.Name) Like "*" & UCase(Target.Value) & "*" Then
            sh.Visible = xlSheetHidden
            Else
            sh.Visible = xlSheetVisible
            End If
        End If
    Next
End If
End Sub
Avatar billede bak Forsker
07. december 2004 - 22:41 #6
Hvis du er i tvivl om hvad LIKE laver, så tag et kig i vba-hjælpen.
LIKE er relativ avanceret.
Avatar billede banazmi Nybegynder
07. december 2004 - 22:48 #7
Jeg takker
Avatar billede bak Forsker
07. december 2004 - 23:47 #8
det var så lidt :-)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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