Macro blocca celle nuova richiesta
Hai un problema con Excel? 
Macro blocca celle nuova richiesta
di Diego (utente non iscritto) data: 05/04/2017 10:16:46
Buongiorno a tutti, scusate se rimetto questo post ma nelle vecchie discussioni ho trovato argomenti simili ma che non riesco ad adattare.
Vorrei chiedere cortesemente se mi aiutate a creare una macro che blocchi determinate celle
Allego il file di prova
In pratica ho un foglio dove inserisco i dati, le celle vanno da A1:S12 non tutte le celle vanno riempite in quanto alcune sono solo informative.
Il foglio e protetto da password, le celle informative sono bloccate e ho tolto il flag in modo che non siano selezionabili.
La macro dovrebbe attivarsi quando nella cella I1 inserisco la data di fine lavoro e quindi bloccare tutte le restanti celle libere.
Per maggiori informazioni le celle che vanno da A1:S12 sono copiate 80 volte creando diciamo dei moduli dove ogni "modulo" avrà la cella I1-I13-I25 che all'inserimento della dota dovrà bloccare solo le celle del modulo.
Spero di essere stato chiaro, ringrazio fin da subito per l'eventuale aiuto
Diego
di Zer0Kelvin data: 05/04/2017 18:39:41
Ciao.
Se le uniche date nel foglio sono quelle di chiusura e le schede sono tutte nello stesso foglio, si risolverebbe molto semplicemente con una routine di evento (vedi sotto) inserita nel codice del foglio.
C'è un "piccolo" problema, però; hai usato delle celle unite, ed il VBA non va per niente daccordo con le celle unite e genera un errore....
Private Sub Worksheet_Change(ByVal Target As Range)
If IsDate(Target) Then
Me.Unprotect
Range(Target.Offset(0, -8), Target.Offset(11, 10)).Locked = True
Me.Protect
End If
End Sub
|
di Diego (utente non iscritto) data: 05/04/2017 19:38:21
Ciao Zer0Kelvin grazie per la gentile risposta, ho tolto le la unione celle e copiato il codice nel foglio e NON nel modulo. Ora la mia cella di riferimento e J1 J13 ecc ecc, qualcosa succede infatti quando inserisco la data il foglio mi chiede la password, io inserisco la password e la macro mi restituisce
" errore run time 1004 " e sotto
" impossibile impostare la proprietà locked per la classe Range"
Mentre se non proteggo il foglio e inserisco solo la data all'invio mi restituisce solo l'errore sopra descritto senza chiedermi la password
Allego File
Ringrazio anticipatamente
Diego
di Zer0Kelvin data: 05/04/2017 22:30:55
Quello è l'errore che dà quando ci sono celle unite. I'istruzione
Range(Target.Offset(0, -8), Target.Offset(11, 10)).Locked = True
cerca di bloccare l'intera area rettangolare della scheda.
Per bloccare le celle unite occorrone un'istruzione per ogni gruppo di celle unite, indicando ogni volta l'offset della prima e ultima cella del gruppo.
Vuoi Approfondire?