› Sviluppare funzionalita su Microsoft Office con VBA › doppia protezione
-
AutoreArticoli
-
Ciao a tutti.
Il foglio allegato ora è protetto ed è scrivibile solo in range giallo.
Chiedo se possibile che per scrivere in questo range si visualizzasse un avviso che per scivere ci vuole una password.
Inserita questa password si può modificare, restando il resto del foglio bloccato.
Passando tra altri fogli del workbook questo foglio si deve ribloccare tutto.
Spero di essermi spiegato.
GrazieAllegati:
You must be logged in to view attached files.ecco un esempio, da inserire nella cartella del foglio "articoli". Password = "123" (che ovviamente può essere cambiata)
`Dim psw As String Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("A2:G501"), Target) Is Nothing Then If psw <> "123" Then Application.EnableEvents = False Application.Undo psw = InputBox("inserire la password") Application.EnableEvents = True End If End If End Sub Private Sub Worksheet_Deactivate() psw = "" End Sub`Grazie lukereds, funziona in parte
Deve funzionare così:
clicco in cella del range giallo del foglio articoli e deve uscire l'avviso password
inserisco la password e posso modificare il range.
passo ad altro foglio e il foglio articoli si deve ribloccare
E' quello che fa il codice, cosa non ti torna?
Allegati:
You must be logged in to view attached files.L'avviso password esce ogni volta che seleziono una cella.
Deve funzionare così:
clicco in cella del range giallo del foglio articoli e deve uscire l'avviso password
inserisco la password e posso modificare tutto il range.
passo ad altro foglio e il foglio articoli si deve ribloccare
Ma non puoi sfruttare la protezione nativa di Excel sugli intervalli di celle agendo su "Consenti modifica intervalli"?
Io farei così:
1) Rimuovi la password al foglio
2) Seleziona l'intervallo "A2:G501" e metti di nuovo il flag su BLOCCATA in FORMATO CELLE --> PROTEZIONE
3) Portati in scheda REVISIONE e scegli CONSENTI MODIFICA INTERVALLI
4) Premi su NUOVO e se vuoi dai un titolo all'intervallo (puoi lasciare anche quello proposto). In RIFERITO A CELLE indichi =A2:G501 se non è stato già suggerito. Infine scegli la password che sbloccherà quelle celle e poi premi OK.
5) Dopo indicato la password delle celle, premi su PROTEGGI FOGLIO che trovi in basso a sinistra e scrivi la password che blocca il foglio
6) Poi lato VBA metti questo codice nel Foglio "articoli":
Option Explicit Private Sub Worksheet_Activate() Me.Unprotect Password:="123456" Me.Protect Password:="123456", UserInterfaceOnly:=True End SubCiao alexps81, non capisco qui
dopo il punto 2
clicco in proteggi foglio > nella mascherina sceglio
solo formato celle???
nessuna password ???
okpoi non posso cliccare in consenti agli utenti la modifica degli intervalli
il pulsante non è attivo"'avviso password esce ogni volta che seleziono una cella."
e certo finchè non digiti la psw non puoi inserire dati altrimenti a che serve?
Lukereds
clicco o scrivo in una cella
nella cella sparisce tutto
esce la maschera della password
inserisco la password
e la cella è vuota
ecerto, hai scritto PRIMA di inserire la psw... dopo che l'hai inserita scrivi tutto quello che vuoi, se invece vuoi poter scrivere anche prima di aver digitato la psw (ma secondo me non va bene) basta togliere l'istruzione Application.Undo
Tieni presente però che così puoi scrivere anche senza aver digitato la psw, il che non ha molto senso
Luke
non va bene
ho tolto Application.Undo
scrivo in una cella
appare la maschera per la password
non inserisco la password > annulla
la parola resta inserita
1) se digiti dei dati prima di inserire la psw, una volta inserita quest'ultima i dati vengono cancellati: non ti va bene
2) se digiti dei dati prima di interire la psw, una volta inserita quest'ultima i dati non vengono cancellati: non ti va bene
Niente, ci rinuncio
Lukeres funziona,
scusami ero io che inserivo la password sbagliata.
Nel tuo file post #53870 la password è 123 io digitavo 12346
Ora è possibile aggiungere se la password è sbagliata= errore?
Grazie ancora
ah ecco, mi pareva... se togli Application.undo puoi togliere anche Application.EnableEvents = False e Application.EnableEvents = True
Aggiunto il msg di psw errata
`Dim psw As String Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("A2:G501"), Target) Is Nothing Then If psw <> "123" Then Application.EnableEvents = False Application.Undo Application.EnableEvents = True psw = InputBox("inserire la password") Do While psw <> "123" If psw = "" Then Exit Sub If psw <> "123" Then MsgBox "Password errata" psw = InputBox("inserire la password") End If Loop End If End If End Sub Private Sub Worksheet_Deactivate() psw = "" End Sub`non capisco qui
dopo il punto 2
clicco in proteggi foglio > nella mascherina sceglio solo formato celle???
nessuna password ???
okpoi non posso cliccare in consenti agli utenti la modifica degli intervalli
il pulsante non è attivoTi mostro degli esempi grafici da seguire:
1) Rimuovi l'eventuale protezione al Foglio "articoli"

2) Seleziona l'intervallo "A2:G501" e scegli FORMATO CELLE dal click destro del mouse

3) Flag su BLOCCATA all'intervallo selezionato

4) Portati nella scheda REVISIONE e poi su CONSENTI MODIFICA INTERVALLI

5) Premi su NUOVO

6) Se vuoi dai un titolo all'intervallo, poi verifica che l'intervallo indicato sia "A2:G501" ed infine scegli una Password che utilizzerai per sbloccare le celle di quell'intervallo. Nel mio esempio che allego è "123"

7) Conferma la Password

8) Adesso proteggi il Foglio "articoli"

9) Inserisci la Password del Foglio, ovvero "123456"

10) Infine conferma la Password

Fatto tutto, metti questo codice nel Modulo del Foglio "articoli"

Option Explicit Private Sub Worksheet_Activate() Me.Unprotect Password:="123456" Me.Protect Password:="123456", UserInterfaceOnly:=True End SubAllegati:
You must be logged in to view attached files.Grazie Lukereds funziona anche la seconda modifica
Alexps81
Non capisco dove sbaglio
clicco in una cella gialla
compare sblocca intervallo
metto la password 123456
ok
mi dice passwword errata
Se stai provando il file che ho allegato io, la password è "123", così come spiegato nei punti 6 e 7 del mio precedente post.
Stai seguendo la procedura da zero oppure stai provando direttamente il file che ho pubblicato?
Se stai seguendo la procedura da zero ricordati che devi rimuovere tutto il codice che magari hai nel Modulo del Foglio "archivio" e rimpiazzarlo con quello che ti ho suggerito.
Alexps81
inserivo la password sbagliata, era 123
Ora funziona
Grazie anche a te
-
AutoreArticoli
