Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Protezione foglio excel Opzioni
simo95
Inviato: Wednesday, August 31, 2011 9:58:46 AM

Rank: AiutAmico

Iscritto dal : 12/4/2008
Posts: 2,008
Ciao ragazzi. Sto predisponendo un foglio excel a cui voglio applicare alcune restrizioni.
Ho questo problema:
Il foglio va protetto con una password, che servirà a dare l'autorizzazione a visualizzare o meno una cella. Se la password non viene inserita o viene inserita nulla, questa cella deve risultare di valore nullo; se la password viene invece inserita la cella presenterà il valore impostato in fase di creazione del foglio.

Il fatto è che non ho trovato un opzione in excel che permetta una protezione a livello di singola cella quindi forse l'unico modo per aggirare il problema è tramite macro..
PS: se la password non viene inserita il file deve essere impostato per la sola lettura, ma questo si può fare direttamente con l'opzione dedicata.

Vi faccio un esempio:

Io che sono "l'amministratore del foglio" e sono in possesso della password, una volta immessa visualizzo con i corretti valori tutte le celle del foglio (in azzurrino quelle che vengono visualizzate correttamente solo dopo l'immisione della pwd):



Se la password non viene inserita all'atto dell'apertura del foglio, le celle interessate devono risultare di valore nullo:



E' possibile? Se fosse possibile solo via macro, nel caso in cui venissero disabilitate in uno dei pc dove viene aperto il foglio, le celle risulterebbero visibili col valore corretto?

Grazie
Sponsor
Inviato: Wednesday, August 31, 2011 9:58:46 AM

 
a10n11
Inviato: Thursday, September 01, 2011 10:34:01 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
una soluzione potrebbe essere questa:

1) utilizzare una cella remota del foglio per clonare la cella da nascondere.
nell'esempio ho utilizzato la cella Z2000 per copiare il contenuto della cella C3 (da nascondere)

2) le macro utilizzate per realizzare la procedura sono:

(a) Macro da inserire nel modulo del foglio di lavoro che serve a replicare il valore della cella C3 nella cella Z2000

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("C3").Address Then
If Target.Value <> 0 Then
Range("Z2000").Value = Target.Value
End If
End If
End Sub

(b) Macro che si attiva alla chiusura del foglio di lavoro da inserire nel modulo (Thisworkbook) predispone il foglio
con la protezione attiva e il valore nullo nella cella C3

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Sheets("Foglio1")
.Cells(3, 3).FormulaHidden = True
.Cells(3, 3).Value = 0
.Protect Password:="pippo"
End With
ThisWorkbook.Save
End Sub

(c) macro che si attiva all'aperura del file da inserire nel modulo (Thisworkbook) e chiede l'immissione della password per scoprire il valore della cella C3

Private Sub Workbook_Open()
With Sheets("Foglio1")
.Protect Password:="pippo", UserInterfaceOnly:=True
End With
x = InputBox("Immetti Password", "PASSWORD")
If x = "pippo" Then
With Sheets("Foglio1")
.Unprotect Password:="pippo"
.Cells(3, 3).Value = Range("Z2000")
End With
Else: Exit Sub
End If
End Sub


Nota: se l'utente disattiva le macro vedrà sempre il valore (0) nella cella C3 e il foglio sarà comunque protetto.
Per evitare che l'utente vada a "ravanare" nell'editor di Visual basic sarebbe utile applicare una password nelle proprietà del progetto VBA

saluti
Giap







simo95
Inviato: Thursday, September 01, 2011 10:56:31 AM

Rank: AiutAmico

Iscritto dal : 12/4/2008
Posts: 2,008
Grandissimo come sempre! Funziona alla grande.
Grazie mille

Simone
a10n11
Inviato: Thursday, September 01, 2011 11:48:37 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
Grazie per il riscontro. Buon lavoro
Giap

d4rkheart
Inviato: Sunday, October 02, 2011 1:35:09 PM

Rank: AiutAmico

Iscritto dal : 5/9/2011
Posts: 132
Scusate se mi allaccio a questo post.
@a10n11...ho creato il foglio excel ed inserito una formula su cella c3, salvo e chiudo. Riapro il file excel e inserisco la password ma la cella c3 perde la formula, diventa vuota. Cosa sbaglio? :(
simo95
Inviato: Sunday, October 02, 2011 2:05:27 PM

Rank: AiutAmico

Iscritto dal : 12/4/2008
Posts: 2,008
Hai inserito correttamente le macro?
d4rkheart
Inviato: Sunday, October 02, 2011 4:10:40 PM

Rank: AiutAmico

Iscritto dal : 5/9/2011
Posts: 132
@simo95, grazie per la risposta. Allora, inizialmente avevo sbagliato a mettere la prima macro in un modulo ma dovevo inserirla sul foglio mentre le altre due vanno messe su thisworkbook, ora inserendo la password la cella c3 mi da il valore ottenuto dalla somma di B5, D4, E5 ma la formula =somma(B5;D4;E5) che avevo inserito perchè è sparita? Allego il file di esempio.
http://www.megaupload.com/?d=0XMYV3HO
la password è sempre pippo
simo95
Inviato: Sunday, October 02, 2011 5:04:15 PM

Rank: AiutAmico

Iscritto dal : 12/4/2008
Posts: 2,008
Non conosco bene VBA ma dal codice direi che la macro funziona copiando il valore della cella in una seconda cella (Z2000) di supporto.
Tuttavia copia il solo valore e non un eventuale formula inserita, che all'atto della chiusura della cartella di lavoro viene persa, anche perchè viene riassegnato alla cella il valore 0 . E' un po come se tu facessi un incolla speciale, scegliendo di incollare il solo valore della cella di origine: la formula non viene mantenuta.

Ciao
d4rkheart
Inviato: Sunday, October 02, 2011 5:07:35 PM

Rank: AiutAmico

Iscritto dal : 5/9/2011
Posts: 132
Grazie della risposta, spero di trovare la soluzione :(
simo95
Inviato: Sunday, October 02, 2011 5:11:04 PM

Rank: AiutAmico

Iscritto dal : 12/4/2008
Posts: 2,008
Basterebbe in teoria modificare la macro, ma non so dove andare a mettere le mani.
d4rkheart
Inviato: Sunday, October 02, 2011 5:23:44 PM

Rank: AiutAmico

Iscritto dal : 5/9/2011
Posts: 132
sicuramente @a10n11 conosce la soluzione :)
io le macro le applico ma non ne capisco molto :)
attendiamo ;)
a10n11
Inviato: Sunday, October 02, 2011 6:40:35 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
d4rkheart ha scritto:
sicuramente @a10n11 conosce la soluzione :)
io le macro le applico ma non ne capisco molto :)
attendiamo ;)

salve
come ti ha fatto notare giustamente Simo, la macro replica solo il valore della cella e non la formula in essa contenuta.
Per il problema di Simo la macro assolve il compito, tu dovresti dire esattamente quale risultato vorresti ottenere.
saluti
Giap

d4rkheart
Inviato: Sunday, October 02, 2011 6:51:14 PM

Rank: AiutAmico

Iscritto dal : 5/9/2011
Posts: 132
@a10n11, si può proteggere la formula ed eventuale valore contenuti in una o più celle con password? Potrei procedere con la protezione del foglio con password ma questa mostra il valore della formula, si potrebbe nascondere valore e formula in modo che torni visibile solo dopo aver inserito password?
a10n11
Inviato: Sunday, October 02, 2011 10:47:39 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
pur non comprendendone l'utlità della procedura richiesta ( se non si vuole che siano visibili le formule può starci, ma che non si rendano visibili i risultati mi è del tutto incomprensibile). In questi casi tanto vale non consentire l'accesso al foglio se non si immette la password.

Premesso questo, qui sotto la macro modificata.
NB. la macro assegnata al foglio1 non serve più, puoi eliminarla. Le due macro che seguono vanno copiate nel modulo Thisworkbook ( utilizzano sempre la cella di appoggio in Z2000

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Sheets("Foglio1")
If .Cells(3, 3).Value <> 0 Then
Range("Z2000").Formula = Cells(3, 3).Formula
.Cells(3, 3).Value = 0
.Protect Password:="pippo"
ThisWorkbook.Save
Else
ThisWorkbook.Close SaveChanges:=False
Application.Quit
End If
End With
End Sub

Private Sub Workbook_Open()
With Sheets("Foglio1")
.Protect Password:="pippo", UserInterfaceOnly:=True
End With
x = InputBox("Immetti Password", "PASSWORD")
If x = "pippo" Then
With Sheets("Foglio1")
.Unprotect Password:="pippo"
.Cells(3, 3).Formula = .Range("Z2000").Formula
End With
Else
: Exit Sub
End If
End Sub

saluti
Giap

d4rkheart
Inviato: Sunday, October 02, 2011 11:15:46 PM

Rank: AiutAmico

Iscritto dal : 5/9/2011
Posts: 132
Commenta:

salve
pur non comprendendone l'utlità della procedura richiesta ( se non si vuole che siano visibili le formule può starci, ma che non si rendano visibili i risultati mi è del tutto incomprensibile). In questi casi tanto vale non consentire l'accesso al foglio se non si immette la password.


la macro postata fa bene il suo lavoro ma io faccio sempre le figuracce del cav*lo, scusa :(
Per proteggere il file excel ho seguito le istruzioni contenute su questo link
http://office.microsoft.com/it-it/excel-help/impostazione-di-una-password-per-aprire-o-modificare-un-documento-una-cartella-di-lavoro-o-una-presentazione-HA010148333.aspx
Comunque grazie mille per la macro.
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.