Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

protezione fogli di calcolo

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

protezione fogli di calcolo

Postdi criscolo67 » 15/05/11 14:05

scusate, ho la necessita di proteggere tutti i foglidi calcolo , uguali tra loro, che in exel ho creato, per non permettere erroneamente di calcellare formule, dato che sono circa 40, come potrei proteggerli e sproteggerli quando serve, per un'eventuale modifica su tutti, senza dover sempre farlo singolarmente, in quanto in gruppo non lo permette???? grazie
criscolo67
Utente Junior
 
Post: 96
Iscritto il: 13/05/11 13:50

Sponsor
 

protezione fogli di calcolo

Postdi raimea » 15/05/11 14:16

semplice...
registri una macro dove x 1na volta tu vai a proteggere ogni singolo foglio
poi registri una 2da macro dove vai a sproteggere i singoli fogli.
alla fine metti 2 pulsanti
1no proteggera' tutto
l'altro sproteggera'.
ciao
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Re: protezione fogli di calcolo

Postdi ricky53 » 15/05/11 15:32

Ciao,
anche con una ricerca nella guida, nel forum o con Google avresti trovato degli esempi di protezione ...
capisco che si fa prima a chiedere ma ...
Si impara molto di più cercando e provando e riprovando che ciedere e ricevere la soluzione "CHIAVI IN MANO".

Comunque ecco un esempio di Protezione ed un esempio di SProtezione
Codice: Seleziona tutto
Sub Proteggi_Tutti_i_Fogli()
    Application.ScreenUpdating = False
    Dim Ws As Worksheet
    For Each Ws In ActiveWorkbook.Worksheets
        Ws.Protect ' <<----- Protegge senza Password
'        Ws.Protect Password:="password" ' <<----- Protegge con Password
    Next Ws
    Application.ScreenUpdating = True
End Sub

Sub SProteggi_Tutti_i_Fogli()
    Application.ScreenUpdating = False
    Dim Ws As Worksheet
    For Each Ws In ActiveWorkbook.Worksheets
        Ws.Unprotect ' <<----- SProtegge senza Password
'        Ws.Unprotect Password:="password" ' <<----- SProtegge con Password
    Next Ws
    Application.ScreenUpdating = True
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: protezione fogli di calcolo

Postdi raimea » 16/05/11 06:45

:idea:
azz... questo non lo conoscevo proprio ed e' molto utile.
se volessi aggiungere anche di "togliere la griglia", a tutti i fogli,mentre protegge,

Codice: Seleziona tutto
ActiveWindow.DisplayGridlines = False

ho provato ad inserire il pezzo di cod. sopra ma.... :roll:

come diventa la macro di - protezione - ?
grazie, ciao
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Re: protezione fogli di calcolo

Postdi ricky53 » 16/05/11 12:06

Ciao,
puoi inviare la macro che hai modificato?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: protezione fogli di calcolo

Postdi raimea » 16/05/11 19:23

io ho provato in vari modi
tipo questo.
Codice: Seleziona tutto
Sub Proteggi_Tutti_i_Fogli()
    Application.ScreenUpdating = False
    Dim Ws As Worksheet
    For Each Ws In ActiveWorkbook.Worksheets
        Ws.Protect ' <<----- Protegge senza Password
         Ws.DisplayGridlines = False
'         Ws.Protect Password:="password" ' <<----- Protegge con Password
    Next Ws
    Application.ScreenUpdating = True
End Sub

ma non va
ciao
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Re: protezione fogli di calcolo

Postdi Avatar3 » 16/05/11 20:20

secondo me dovresti rendere attivo il foglio

Codice: Seleziona tutto
Sub Proteggi_Tutti_i_Fogli()
    Application.ScreenUpdating = False
    Dim Ws As Worksheet
    For Each Ws In ActiveWorkbook.Worksheets
        Ws.Protect ' <<----- Protegge senza Password
        Ws.Activate
        ActiveWindow.DisplayGridlines = False
'         Ws.Protect Password:="password" ' <<----- Protegge con Password
    Next Ws
    Application.ScreenUpdating = True
End Sub


Ciao
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

protezione fogli di calcolo

Postdi raimea » 16/05/11 20:30

ok :) cosi funziona,
blocca + toglie la griglia nei fogli
grazie
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Re: protezione fogli di calcolo

Postdi criscolo67 » 17/05/11 14:07

scusate, come vi avevo accennato, ho creato un'applicazione con exel per poter ricavare la chiusura mensile per i dipendenti dove lavoro.Premetto che in tutto siamo circa 50 lavoratori ed ho per ogni dipendente creato un foglio di calcolo, quindi 50 uguali tra loro, dove inserisco giornalmente la turnazione di lavoro dove su un'altro foglio verranno contabilizzate le varie indennità. grazie al vostro aiuto sono riuscito a semplificare alcune applicazioni. solo che ora la macro che avevo creato per cancellare il contenuto di alcune celle da tutti i fogli di lavoro per azzerare ogni inizio mese non funziona più, per meglio dire da quando do inserito la macro per proteggere e sproteggere tutti i fogli la cancellazione avviene solo per i primi 13 dei 50 fogli, tengo a precisare che se proteggo manualmente tutti e 50 fogli e lascio partire la macro di acncellazione dati tutto funziona, mentre se lancio la macro proteggi tutti i fogli e poi quella di cancellazione dati mi da l'indicazione di non poter cancellare in qualto le celle in questione sono protette anche se sono state tutte quelle d'interesse in primis sbloccate. vi allego la macro per cancellare i dati mentre quelle per proteggere sono quelle di ricky53
Codice: Seleziona tutto
Sub cancellazionedati()
On Error GoTo gesterr
'
' cancellazionedati Macro
'
    'Sub ClearRanges()
If MsgBox("Attenzione! Sei sicuro di cancellare ?", vbYesNoCancel, "Cancellazione") = vbYes Then
    Dim indice As Long
    For indice = 2 To 45
        Worksheets(indice).Range("b12:e42,h12:n42,p12:Ac42,ag12:aj42,z51,j43,k43,l43"). _
        ClearContents
    Next indice
    If Err = 0 Then
        MsgBox "tutto ok"
    End If
End If
Exit Sub
gesterr:
        MsgBox "qualcosa non è andato" & Err.Description
       
End Sub
criscolo67
Utente Junior
 
Post: 96
Iscritto il: 13/05/11 13:50

Re: protezione fogli di calcolo

Postdi ricky53 » 17/05/11 16:02

Ciao,
consiglio: sproteggi i fogli prima di cancellare i dati
Ossia:
Codice: Seleziona tutto
Sub cancellazionedati()
On Error GoTo gesterr
'
' cancellazionedati Macro
'
    'Sub ClearRanges()
If MsgBox("Attenzione! Sei sicuro di cancellare ?", vbYesNoCancel, "Cancellazione") = vbYes Then
    Dim indice As Long

' QUI inserisici la chiamata alla macro che SPROTEGGE TUTTI i FOGLI

    For indice = 2 To 45
        Worksheets(indice).Range("b12:e42,h12:n42,p12:Ac42,ag12:aj42,z51,j43,k43,l43"). _
        ClearContents
    Next indice
    If Err = 0 Then
        MsgBox "tutto ok"
    End If
End If
Exit Sub
gesterr:
        MsgBox "qualcosa non è andato" & Err.Description
       
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: protezione fogli di calcolo

Postdi criscolo67 » 17/05/11 19:54

ciao, chiedo non è che si potrebbe al termine della cancellazione dati rinserire la protezione??? ossia
Codice: Seleziona tutto
Sub cancellazionedati()
On Error GoTo gesterr
'
' cancellazionedati Macro
'
    'Sub ClearRanges()
If MsgBox("Attenzione! Sei sicuro di cancellare ?", vbYesNoCancel, "Cancellazione") = vbYes Then
    Dim indice As Long

' QUI inserisici la chiamata alla macro che SPROTEGGE TUTTI i FOGLI

    For indice = 2 To 45
        Worksheets(indice).Range("b12:e42,h12:n42,p12:Ac42,ag12:aj42,z51,j43,k43,l43"). _
        ClearContents
    Next indice
    If Err = 0 Then
        MsgBox "tutto ok"
    End If
End If
Exit Sub
gesterr:
        MsgBox "qualcosa non è andato" & Err.Description
   QUI inserire  la chiamata alla macro che PROTEGGE TUTTI i FOGLI
End Sub
criscolo67
Utente Junior
 
Post: 96
Iscritto il: 13/05/11 13:50

Re: protezione fogli di calcolo

Postdi ricky53 » 17/05/11 21:20

Ciao,
prova questo esempio (è la tua macro alla quale ho fatto delle modifiche)
Codice: Seleziona tutto
Sub Cancellazione_Dati()
    On Error GoTo Gesterr
    If MsgBox("Attenzione! Sei sicuro di cancellare ?", vbYesNoCancel, "Cancellazione") = vbYes Then
        Dim indice As Long
' QUI inserisici la chiamata alla macro che SPROTEGGE TUTTI i FOGLI
        Call SProteggi_Tutti_i_Fogli
 
      For indice = 2 To 45
            Worksheets(indice).Range("b12:e42,h12:n42,p12:Ac42,ag12:aj42,z51,j43,k43,l43"). _
            ClearContents
        Next indice
        MsgBox "tutto ok"
    End If
    GoTo Fine
Gesterr:
        MsgBox "qualcosa non è andato" & Err.Description
Fine:
' QUI inserisici la chiamata alla macro che PROTEGGE TUTTI i FOGLI
        Call Proteggi_Tutti_i_Fogli
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: protezione fogli di calcolo

Postdi criscolo67 » 18/05/11 15:02

ciao ricky non va, quando lancio la macro con le modifiche mi appare finestra in visual basic di errore "errore di compilazione dichiarazione doppia nell'area di validità corrente" e nella macro si evidenzia "Ws AS worksheet".
criscolo67
Utente Junior
 
Post: 96
Iscritto il: 13/05/11 13:50

Re: protezione fogli di calcolo

Postdi ricky53 » 18/05/11 16:23

Ciao,
il messagio "sta a significare" (come avrebbe detto Montalbano): la variabile "Ws" è stata già definita, per esempio in un altro modulo.

Controlla !!!
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: protezione fogli di calcolo

Postdi criscolo67 » 19/05/11 18:11

giusto grazie.
criscolo67
Utente Junior
 
Post: 96
Iscritto il: 13/05/11 13:50

Re: protezione fogli di calcolo

Postdi gelsomino » 19/10/11 11:38

ricky53 ha scritto:Ciao,
prova questo esempio (è la tua macro alla quale ho fatto delle modifiche)
Codice: Seleziona tutto
Sub Cancellazione_Dati()
    On Error GoTo Gesterr
    If MsgBox("Attenzione! Sei sicuro di cancellare ?", vbYesNoCancel, "Cancellazione") = vbYes Then
        Dim indice As Long
' QUI inserisici la chiamata alla macro che SPROTEGGE TUTTI i FOGLI
        Call SProteggi_Tutti_i_Fogli
 
      For indice = 2 To 45
            Worksheets(indice).Range("b12:e42,h12:n42,p12:Ac42,ag12:aj42,z51,j43,k43,l43"). _
            ClearContents
        Next indice
        MsgBox "tutto ok"
    End If
    GoTo Fine
Gesterr:
        MsgBox "qualcosa non è andato" & Err.Description
Fine:
' QUI inserisici la chiamata alla macro che PROTEGGE TUTTI i FOGLI
        Call Proteggi_Tutti_i_Fogli
End Sub


Intanto ciao ricky53,
e ti dico subito che non sono molto pratico di macro (sto iniziando adesso).
Su un mio lavoro excel ho inserito la tua macro e mi da questo errore:

qualcosa non è andato impossibile modificare una parte di una cella unita

ho provato a modificare e togliere anche le celle che avevo unito ma mi continua a dare errore.
se puoi aiutarmi mi faresti un favore. Ti ringrazio da adesso.
gelsomino
Newbie
 
Post: 5
Iscritto il: 19/10/11 11:29

Re: protezione fogli di calcolo

Postdi Anthony47 » 19/10/11 23:35

Ciao gelsomino, benvenuto nel forum.
Se il messaggio dice che non puo' manipolare celle unite allora vuol dire che le celle unite non sono state eliminate; esattamente su quale istruzione hai l' errore? (premi debug; indica quale istruzione e' evidenziata, copiandola dalla tua macro e incollandola nel tuo prossimo messaggio).

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: protezione fogli di calcolo

Postdi gelsomino » 20/10/11 08:47

Anthony47 ha scritto:Ciao gelsomino, benvenuto nel forum.
Se il messaggio dice che non puo' manipolare celle unite allora vuol dire che le celle unite non sono state eliminate; esattamente su quale istruzione hai l' errore? (premi debug; indica quale istruzione e' evidenziata, copiandola dalla tua macro e incollandola nel tuo prossimo messaggio).

Ciao

Il problema è che mi da l'errore che ti ho detto ma nella macro non mi da nulla di anomalo e neanche di evidenziato.
ti assicuro che i campi che mi deve cancellare non sono celle unite.
se non ci sono problemi per te, ti manderei il file, però in privato.
fammi sapere
gelsomino
Newbie
 
Post: 5
Iscritto il: 19/10/11 11:29

Re: protezione fogli di calcolo

Postdi Anthony47 » 20/10/11 09:20

Ok.
Togli l' istruzione On Error GoTo Gesterr (in testa) e rilancia la macro; avrai cosi' la possibilita' di individuare la riga che va in errore.
Immagino che sara' la riga Worksheets(indice).Range("b12:e42,h12:n42,p12:A etc etc, per cui sara' importante capire di quale foglio si parla. Per capirlo puoi mettere per prova questa istruzione
Codice: Seleziona tutto
For indice = 2 To 45     ' ESISTENTE
Worksheets(indice).Select     '<<< AGGIUNTA
Il foglio selezionato e' quello che causa l' errore; ispezionalo per verificare che le celle che vai a pulire non sono "unite".

Se non risolvi, indica quale e' l' istruzione che va in errore (copia dalla tua macro la riga/righe evidenziate e incolla nel tuo messaggio).

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: protezione fogli di calcolo

Postdi gelsomino » 20/10/11 10:30

Anthony47 ha scritto:Ok.
Togli l' istruzione On Error GoTo Gesterr (in testa) e rilancia la macro; avrai cosi' la possibilita' di individuare la riga che va in errore.
Immagino che sara' la riga Worksheets(indice).Range("b12:e42,h12:n42,p12:A etc etc, per cui sara' importante capire di quale foglio si parla. Per capirlo puoi mettere per prova questa istruzione
Codice: Seleziona tutto
For indice = 2 To 45     ' ESISTENTE
Worksheets(indice).Select     '<<< AGGIUNTA
Il foglio selezionato e' quello che causa l' errore; ispezionalo per verificare che le celle che vai a pulire non sono "unite".

Se non risolvi, indica quale e' l' istruzione che va in errore (copia dalla tua macro la riga/righe evidenziate e incolla nel tuo messaggio).

Ciao


Worksheets(indice).Range("D5:F35;L5:V35;X5:X35;Z5:AA35;AK6:AL7").ClearContents

SI l'errore si trova nella riga che hai indicato. Ho fatto come mi hai scritto e
il fantomatico errore si trova nel foglio 12 (Novembre), ho controllaro la serie di celle
che la macro deve cancellare e non vi sono unioni.
Ti ringrazio per l'aiuto che mi stai dando.
gelsomino
Newbie
 
Post: 5
Iscritto il: 19/10/11 11:29

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "protezione fogli di calcolo":


Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti