Macro blocca celle nuova richiesta



  • 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.