Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Macro Proteggi Range SE....

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

[Excel] Macro Proteggi Range SE....

Postdi marte1503 » 27/10/11 00:55

Ciao a tutti

Nemmeno il tempo di respirare e torno con una nuova domanda..

Situazione
Ho attivato la protezione celle in foglio3 :
>>formato celle>> protezione >> spunta su casella “bloccata”
Poi
>>Menù revisione >> proteggi foglio >>ok
E da questa protezione ho escluso il range D5:D53 (celle che compilo abitualmente.)

Richiesta:
Avrei bisogno una macro che controlli se in cella D7 è presente la parola “NO”(in questo caso dovrebbe bloccare tutto il range D8:D19)
Ho creato questa macro attaccando vari pezzi ma purtroppo non funziona…

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(7, 4) = "" Then Exit Sub
If Cells(7, 4) = "Sì" Then Exit Sub
If Target.Address = "$D$7" = "No" Then Range("D8:D19").Selection.FormulaHidden = True
Selection.Locked = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


Grazie per l'aiuto..
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Sponsor
 

Re: [Excel] Macro Proteggi Range SE....

Postdi Flash30005 » 27/10/11 02:06

Prova questa

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$D$7" Then Exit Sub
ActiveSheet.Unprotect
If Target = "NO" Then
    Range("D8:D19").Select
    Selection.Locked = True
    Selection.FormulaHidden = True
Else
     Range("D8:D19").Select
    Selection.Locked = False
    Selection.FormulaHidden = False
End If
    ActiveSheet.Protect
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] Macro Proteggi Range SE....

Postdi marte1503 » 27/10/11 06:10

Ciao Flash, grazie per l'aiuto.

Ho provato la macro ma non funziona:

Qualunque sia la selezione che faccio in D7 (Sì, No, oppure Canc per liberare dall'inseimento, la macro seleziona il range D8:D19 e rimane selezioinato ma non succede nulla, riesco a inserire i dati in D8:D19 anche con la selezione NO in D7, praticamente il range rimane "sprotetto".)

Ho inserito la macro solo nel modulo di foglio3, è giusto?

Ciao
Grazie
Marte1503
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: [Excel] Macro Proteggi Range SE....

Postdi Flash30005 » 27/10/11 09:27

La macro non deve stare in un modulo
ma nel VBA del foglio con i dati da proteggere

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] Macro Proteggi Range SE....

Postdi marte1503 » 27/10/11 19:36

Ciao Flash

...Intendevo dire quello ma ho fatto un po' di confusione scrivendo...
Ti confermo che la macro è inserita nel VBA di foglio3, ma confermo anche che non protegge il range.
Cosa devo controllare?

Grazie
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: [Excel] Macro Proteggi Range SE....

Postdi Flash30005 » 27/10/11 20:01

Prova ad cambiare questa riga di codice da così
Codice: Seleziona tutto
If Target = "NO" Then

a così
Codice: Seleziona tutto
If Ucase(Target) = "NO" Then


e fai sapere
Altrimenti inviami il file solo con i dati in D8:D19 e la macro inserita

Ciao

P.s. ok che la macro è nel vba del foglio3 ma anche i dati che devi proteggere sono sul foglio3, spero!!!
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] Macro Proteggi Range SE....

Postdi marte1503 » 27/10/11 23:17

Ok Flash, ora funziona benissimo.

- Due cose: dopo aver fatto la scelta “Sì”, oppure dopo aver inserito “Sì” e premuto Canc per pulire D7, l’intervallo D8:D19 rimane attivo. Mi puoi dire come correggere il codice in modo che dopo la scelta il range si deselezioni?

- L’altra: volendo apportare la stessa identica modifica sul range D22:D33 con lo stesso criterio “Sì” oppure “No” ma abbinato alla cella D21, è sufficiente modificare i range e aggiungerlo al codice esistente?
Grazie
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: [Excel] Macro Proteggi Range SE....

Postdi marte1503 » 27/10/11 23:37

... Mi son fatto coraggio e ho provato a pastrugnare un pochino..
Per quanto riguarda la deselezione del range ho risolto con un Cells( ...) . select che mi porta nella selezione successiva.

Per qunto riguarda il nuovo range da proteggere non sono riuscito...
Ho fatto l'esperimento del raddoppio informazioni in questo modo:

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$D$7" Then Exit Sub
ActiveSheet.Unprotect
If UCase(Target) = "NO" Then
    Range("D8:D19").Select
    Selection.Locked = True
    Selection.FormulaHidden = True
    Cells(21, 4).Select
Else
     Range("D8:D19").Select
    Selection.Locked = False
    Selection.FormulaHidden = False
    Cells(7, 4).Select
End If
    ActiveSheet.Protect
    If Target.Address <> "$D$21" Then Exit Sub
ActiveSheet.Unprotect
If UCase(Target) = "NO" Then
    Range("D22:D33").Select
    Selection.Locked = True
    Selection.FormulaHidden = True
    Cells(36, 4).Select
Else
     Range("D22:D33").Select
    Selection.Locked = False
    Selection.FormulaHidden = False
    Cells(21, 4).Select
End If
    ActiveSheet.Protect
End Sub



La protezione funziona solo sul primo range...
Aspetto un nuovo aiutino..

Grazie.
notte...
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: [Excel] Macro Proteggi Range SE....

Postdi Flash30005 » 28/10/11 13:19

marte1503 ha scritto:Ok Flash, ora funziona benissimo.

Spero che ti sarai reso conto del perché prima non funzionasse
Continuavi a scrivere...
"
marte1503 ha scritto:Ho provato la macro ma non funziona:
Qualunque sia la selezione che faccio in D7 ...con la selezione NO in D7, praticamente il range rimane "sprotetto".)

La macro entrava in funzione se la sctringa era "NO" ma non interveniva se era con maiuscole e minuscole (No, no)

Quindi fate più attenzione a quello che scrivete, perché chi legge non sa le cose che, poi, fate con il Pc.

marte1503 ha scritto:- Due cose: dopo aver fatto la scelta “Sì”, oppure dopo aver inserito “Sì” e premuto Canc per pulire D7, l’intervallo D8:D19 rimane attivo. Mi puoi dire come correggere il codice in modo che dopo la scelta il range si deselezioni?

- L’altra: volendo apportare la stessa identica modifica sul range D22:D33 con lo stesso criterio “Sì” oppure “No” ma abbinato alla cella D21, è sufficiente modificare i range e aggiungerlo al codice esistente?


Ecco corretto come richiesto

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$D$7" Then GoTo Salta
ActiveSheet.Unprotect
    If UCase(Target) = "NO" Then
        Range("D8:D19").Locked = True
        Range("D8:D19").FormulaHidden = True
    Else
        Range("D8:D19").Locked = False
        Range("D8:D19").FormulaHidden = False
    End If
ActiveSheet.Protect
Salta:
    If Target.Address <> "$D$21" Then Exit Sub
ActiveSheet.Unprotect
    If UCase(Target) = "NO" Then
        Range("D22:D33").Locked = True
        Range("D22:D33").FormulaHidden = True
    Else
        Range("D22:D33").Locked = False
        Range("D22:D33").FormulaHidden = False
    End If
ActiveSheet.Protect
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] Macro Proteggi Range SE....

Postdi marte1503 » 28/10/11 22:13

Ciao Flash,
grazie per avermi richiamato l’attenzione sul maiuscolo/minuscolo, terrò presente.
PS. La macro funziona perfettamente, ti ringrazio

Alla prossima
Marte1503
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Macro Proteggi Range SE....":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti