• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Macro die bepaalde tabbladen laat zien.

Status
Niet open voor verdere reacties.

MrBob

Gebruiker
Lid geworden
3 aug 2013
Berichten
218
Ik heb een sheet gemaakt met 20 tabbladen waar een vraag word gesteld bij het opstarten van de sheet. Nu wil ik als ze ja kiezen de macro Hide_Some_Sheets word gestart dat er door mij gekozen tabbladen zichtbaar worden en de rest word verborgen.

Nu heb ik al iets gevonden en dat werkt. Echter maar 1 keer want als ze de sheet gesaved hebben en starten hem nogmaals op en ze kiezen weer ja dan krijg ik een error. Zal het vast en zeker wel niet goed doen, maar vandaar ook mijn hulp vraag natuurlijk. Meteen dan ook maar de volgende vraag als ik deze code werkend krijg, weet iemand ook de macro code as ik die uitvoer dat alle tabbladen zichtbaar worden en natuurlijk ook als de tabbladen zichtbaar zijn geen meldingen meer geeft maar gewoon opstart. Of is dat dezelfde code maar dan moet ik gewoon alle namen van de tabbladen invoeren, wat ik persoonlijk wel handig zou vinden. :thumb:

Code:
Sub Hide_Some_Sheets()
          myarray = Array("Sheet1", "Sheet2", "Sheet3")
        For Each el In myarray
            If Sheets(el).Visible = True Then
                Sheets(el).Visible = xlVeryHidden
            Else
                Sheets(el).Visible = True
            End If
        Next
End Sub
 
Welke foutmelding krijg je? Waar wordt de vraag gesteld? In welke sectie staat bovenstaande sub?

Alle bladen zichtbaar maken:
Code:
Sub AllesZichtbaar()
    For Each ws In ThisWorkbook.Sheets
        ws.Visible = True
    Next ws
End Sub
 
Ik probeer uw vraag te begrijpen maar
Nu wil ik als ze ja kiezen de macro Hide_Some_Sheets word gestart dat er door mij gekozen tabbladen zichtbaar worden en de rest word verborgen.
Bedoel je hiermee dat bepaalde tabbladen voor de gebruikers nooit zichtbaar mogen zijn, want dat staat dan haaks tegenover
weet iemand ook de macro code as ik die uitvoer dat alle tabbladen zichtbaar worden
Twintig tabbladen invoeren, persoonlijk vind ik daar niets handig aan maar in vb bestandje heb ik iets in die richting
moet ik gewoon alle namen van de tabbladen invoeren, wat ik persoonlijk wel handig zou vinden
Mischien kan je de nodige inspiratie halen uit bijlage
 

Bijlagen

  • Hide sheets.xlsb
    26,8 KB · Weergaven: 42
Bedankt ik zal eerst even je bestandje bekijken, misschien is de vraag dan al opgelost. Anders meld ik mij wel weer. :thumb:

Krijg gelijk na het openen van de file Fout 1004 tijdens uitvoering:
Methode activate van klasse Worksheet is mislukt.

Wat is er verkeerd.

Bij mijn file krijg ik:

Fout 9 tijdens uitvoering:
Het subscript valt buiten het bereik.

Hopelijk kunnen jullie er wat mee, toch alvast bedankt voor het meedenken. ;)
 
Laatst bewerkt:
Laat ik mijn verhaal verhelderen, daar ik merk dat het niet helemaal duidelijk is.

Ik heb een sheet die opend normaal met 20 tabbladen. Nu stel ik via een code de vraag Ja en of Nee. Als men Ja antwoord wil ik dat er 3 door mij gekozen tabbladen zichtbaar worden en de rest automatisch worden verborgen als deze tijdens het opengaan van de excell sheet toevallig nog actief zijn. Kiezen ze nee dan wil ik via een macro dat alle tabbladen zichtbaar worden. Hoe nu tijdens de vraag Ja en of Nee met een Call Hide_some_sheets dus de macro op te roepen ben ik al achter, echter heeft hij mijn code zich al een keer uitgevoerd en start ik nogmaals met Ja op na afsluiten krijg ik de foutmelding die hier boven beschreven staat omdat ik denk bepaalde schermen al verborgen zijn en de code de tabbladen niet meer kan vinden op dat moment. Ik denk dus dat mijn code niet goed is om deze te herhalen als bij het opstarten alleen de 3 tabbladen al actief zijn en de rest van de tabbladen al verborgen zijn. Hopelijk is het nu duidelijker wat ik wil.
 
Krijg gelijk na het openen van de file Fout 1004 tijdens uitvoering:
Methode activate van klasse Worksheet is mislukt.

Wat is er verkeerd.

Bij mijn file krijg ik:

Fout 9 tijdens uitvoering:
Het subscript valt buiten het bereik.

Hopelijk kunnen jullie er wat mee, toch alvast bedankt voor het meedenken. ;)

Dan is dus het blad dat Excel wil activeren niet (meer) zichtbaar.
Zoals altijd is een voorbeeld bestand weer beter dan welke uitleg dan ook.
 
Hoi Ed,

De Excell sheet staat helaas te vol met gevoelige info. Vandaar dat ik hem liever niet deel. Ik wil dit via macro's regelen. Dus ik heb een macro die alle sheets laat zien en een macro die als de sheets alle zichtbaar zijn verbergt tot de 3 laatst gekozen. Dus start ik de sheet op en antwoord ik ja en alle sheets zijn zichtbaar dan werkt het goed en houd ik de drie sheets over. Maar saved men dan en openen ze de sheet nogmaals en antworden weer ja dan een error melding.

Deze macro roep ik dus op als men Ja en of Nee kiest. Dus kiezen ze ja dan voer ik de macro uit die de tabbladen verbergt en kiezen ze Nee dan worden alle tabbladen via de macro AllesZichtbaar weer zichtbaar.

Ik zal even een voorbeeld in elkaar knutselen en zodadelijk aan deze post hangen ! Bedankt voor het meedenken. :thumb:
 
Lol nu maak ik een nieuw bestand exact dezelfde code en nu werkt het zonder fouten :S zit dus iets qua beveiliging nog mis bij mij. Zoek ik zelf nog wel even uit.

Maar ik ben er nog niet helemaal. Ik heb het voorbeeld bestandje aan deze post hangen. Als je nu het bestand opent en je antwoord ja doet hij het goed en laat de eerste 3 bladen zien, even saven en dan nogmaals openen en weer ja komen alle tabbladen terug. Hoe kan ik het maken dat alleen de eerste 3 tabbladen verschijnen zonder dat alles weer terugkomt bij 2 maal ja.
 

Bijlagen

  • Demo.xlsm
    19,5 KB · Weergaven: 40
Leg even uit wanneer de bladen 4, 5 en 6 zichtbaar moeten zijn en wanneer niet.
 
Je antwoord is nog niet precies. Ik ga er vanuit dat wanneer je Ja drukt de bladen 1, 2 en 3 zichtbaar moeten zijn en bij Nee alle bladen zichtbaar. Tevens initiëel bladen 4, 5 en 6 niet zichtbaar:
Bekijk bijlage Demo.xlsm
 
Je file heeft het probleem opgelost. Bedankt Ed. Het werkt nu zo het zou moeten werken, waarvoor mijn dank. Natuurlijk ook de rest og badankt voor jullie hulp ik kan weer verder. :thumb:

Deze vraag is succesvol opgelost.
 
Bonus tip. Vereenvoudigde Vraag routine:
Code:
Sub Vraag()
    Select Case MsgBox("Ga je gegevens invullen ?", vbYesNo, "List Sheets")
        Case vbYes
            Call Verberg_Sommige
            saveOnExit = True
        Case Else
            Call AllesZichtbaar
            saveOnExit = False
    End Select
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan