non so scrivere la macro per nascondere il foglio in questione, tanto meno inserire la password al VBA. pazienza grazie cmq
Mi permetto di pensare che certi meccanismi di protezione vanno disegnati secondo le proprie conoscenza, se si vuole evitare di rimanere intrappolati in suggerimenti funzionanti ma incompresi...
Se vuoi che (mettiamo) Foglio2 venga nascosto a chi non conosce la password potresti inserire questa macro nel "Modulo di Classe" di Foglio2:
- Codice: Seleziona tutto
Private Sub Worksheet_Activate()
mycode = Application.InputBox("Password?", "Verifica di accesso")
If mycode <> "segreta" Then Sheets("Foglio1").Select
End Sub
Per come inserire una macro nel Modulo di classe di un foglio di lavoro:
viewtopic.php?f=26&t=103893&p=647675#p647675Pero' il foglio rimane esposto fintanto che non si risponde alla domanda.
Oppure dichiari il foglio "veryHidden" all'apertrura del file, inserendo questa macro nel Modulo di classe QuestaCartellaDiLavoro:
- Codice: Seleziona tutto
Private Sub Workbook_Open()
Sheets("Foglio2").Visible = xlVeryHidden
End Sub
In questo modo avrai bisogno di una macro per rendere il foglio visibile e quindi attivabile; nella macro inserisci il controllo della password. Ad esempio, da inserire in un Modulo standard del vba:
- Codice: Seleziona tutto
Sub VediF2()
'
mycode = Application.InputBox("Password?", "Verifica di accesso")
If mycode = "segreta" Then
Sheets("Foglio2").Visible = xlSheetVisible
Sheets("Foglio2").Select
End If
End Sub
Eseguila quando vuoi accedere a Foglio2.
Per eseguire una macro, vedi
viewtopic.php?f=26&t=103893&p=647675#p647678Per proteggere il tuo "VbaProject", dal vba:
-Menu /Strumenti /Proprieta' di vbaproject, tab Protezione
-impostare una password
E cosi', tanto per farti capire la validita' della protezione, questo non impedira' a un terzo di scrivere una macro che dice:
- Codice: Seleziona tutto
Sub aggiration()
Workbooks("IlTuoFile.xlsm").Sheets("Foglio2").Visible = xlSheetVisible
End Sub
Tuttavia tu potresti controbattere creando una macro che controlla in continuazione se excel e' la finestra attiva oppure no; nel secondo caso automaticamente riporti Foglio2 a xlVeryHidden.
Ma questo non impedira' a un terzo di usare ad esempio Stop per bloccare il vba e impedire l'esecuzioni di ulteriori macro; oppure semplicemente aprire il tuo file avendone disabilitato le macro.
Tuttavia tu potresti controbattere eliminado una serie di interfacce che rendono inutilizzabile il file se le macro non sono in esecuzione.
Ma questo non impedira' a un terzo etc etc
Ciao