Avatar billede CHC Forsker
21. september 2018 - 12:12 Der er 3 kommentarer og
1 løsning

Skjul faner - VBA

Hej

Jeg har en excel-fil med mange ark, hvor jeg gerne vil have en knap, som kan skjule alle de ark, som har celle H9 som "Ikke gyldig".

De skal dog kunne vises igen, evt. med den samme knap, så samtlige ark med enten teksten "Gyldig" eller "Ikke Gyldig" i Celle H9 vises.

Venligst CHC
21. september 2018 - 12:25 #1
Har forsøgt at kode det du skriver

Sub SkjulVis()
    Dim wks As Worksheet
    For Each wks In Worksheets
        If wks.Range("H9").Value2 = "Ikke gyldig" Then
            wks.Visible = xlSheetHidden
        End If
        If wks.Range("H9").Value2 = "Ikke Gyldig" Or wks.Range("D9").Value2 = "Gyldig" Then
            wks.Visible = xlSheetVisible
        End If
    Next
End Sub


Altså skjuler, hvis der står "ikke gyldig" (med lille g) og viser hvis der står "ikke Gyldig" (med stort G) eller "Gyldig". Er dog ikke helt sikker på, at det er det du faktisk ønsker?
Avatar billede CHC Forsker
21. september 2018 - 12:40 #2
Hej Thor

Mange tak, indtil videre. Jeg har ikke prøvet det af endnu, da jeg lige skal præcisere, at der er tale om status som enten "Gyldig" eller "Ikke gyldig" og således ikke en tredje variant med "Ikke Gyldig" (med stort G), det var en taste fejl.

Ændrer det noget?

Vh CHC
Avatar billede CHC Forsker
21. september 2018 - 12:53 #3
Hej Thor

Din løsning løser til dels udfordringen, efter at jeg har rettet min tastefejl. :-)
Men jeg vil som skrevet meget gerne have mulighed for, at kunne vise alle de skjulte faner "Ikke Gyldig" igen, men det kræver vel en knap til, eller hvad?

Sub SkjulVis()
    Dim wks As Worksheet
    For Each wks In Worksheets
        If wks.Range("H9").Value2 = "Ikke gyldig" Then
            wks.Visible = xlSheetHidden
        End If
        If wks.Range("H9").Value2 = "Gyldig" Then
            wks.Visible = xlSheetVisible
        End If
    Next
End Sub
21. september 2018 - 13:10 #4
Ja, det kræver en makro mere.
Gættede på at du styrede indholdet i H9 med en formel og derfor kunne klare det med en enkelt makro.

Sub VisIkkeGyldig()
    Dim wks As Worksheet
    For Each wks In Worksheets
        If wks.Range("H9").Value2 = "Ikke gyldig" Then
            wks.Visible = xlSheetVisible
        End If
    Next
End Sub
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

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