Questo sito utilizza cookie, anche di terze parti, per migliorare la tua esperienza e offrire servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie

Quando si creano dei file Excel che contengono molto codice VBA, si corre il rischio che, se l’utente non attiva le macro, questi file risultino praticamente inutilizzabili.
Purtroppo, dato che l’utente ha scelto di non utilizzare il codice non è possibile evitare che il file venga usato via codice. Se deve ricorrere ad un piccolo trucco.

 Per prima cosa bisogna inserire nel file un foglio che contiene un messaggio che segnala che il file è inutilizzabile se non si abilitano le macro.
Bisogna poi nascondere tutti i fogli i cui del file il cui uso è limitato senza macro.
Poi sull’evento Workbook_Open() occorre scrivere il codice che nasconde il foglio col messaggio (che potremmo proprio chiamare “messaggio”, per comodità di riferimento nel codice) e scopre gli altri.

Private Sub Workbook_Open()
    Dim foglio As Worksheet

    For Each foglio In Worksheets

        foglio.Visible = True
    Next

    Worksheets("messaggio").Visible = False
    Workbook.Save

End Sub

 

Ovviamente questo codice viene eseguito solo se le macro sono abilitate.
A questo punto, se un utente non abilita vedrà solo il foglio con il nostro messaggio. Tutto il resto sarà nascosto.
Bisognerà poi aggiungere un codice che ri-nasconde i fogli con le macro e scopre quello senza appena prima di chiudere il foglio.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Dim foglio As Worksheet
    Worksheets("messaggio").Visible = True

    For Each foglio In Worksheets

        If foglio.Name <> "messaggio" Then
            foglio.Visible = False
        End If
    Next

End Sub

Il file allegato contiene l'esempio svolto

Attachments:
Download this file (nascondiFogliNoMacro.xlsm)nascondiFogliNoMacro.xlsm[ ]15 kB
Joomla templates by a4joomla