Condividi tramite

macro excel foglio protetto

Anonimo
2017-07-04T11:43:51+00:00

salve,

ho un file excel con alcune celle protette. nell'eseguire le macro, prima del codice macro inserisco la seguente stringa: 

Sheets("Foglio1").Unprotect

quindi il codice macro

e per riproteggere le celle inserisco la seguente stringa:

Sheets("Foglio1").Protect

Tutto sembra funzionare ma con Ma: praticamente ad esecuzione della Macro, le celle protette nn risultano + protette.

esempio:

A1= Antonio (cella modificabile), la macro deve copiare il contenuto di A1 in D4 (cella protetta). quindi scrivo il seguente codice che, ripeto, mi esegue la macro ma non ripristina la protezione nella cella D4:

    Sheets("Foglio1").Unprotect

    Range("A1").Select

    Selection.Copy

    Range("D4").Select

    ActiveSheet.Paste

    Range("A1").Select

    Application.CutCopyMode = False

    Sheets("Foglio1").Protect

End Sub

Dove sbaglio?

grazie 1000

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

1 risposta

Ordina per: Più utili
  1. Anonimo
    2017-07-05T13:25:34+00:00

    Ciao Antonio,

    ho un file excel con alcune celle protette. nell'eseguire le macro, prima del codice macro inserisco la seguente stringa: 

    Sheets("Foglio1").Unprotect

    quindi il codice macro

    e per riproteggere le celle inserisco la seguente stringa:

    Sheets("Foglio1").Protect

    Tutto sembra funzionare ma con Ma: praticamente ad esecuzione della Macro, le celle protette nn risultano + protette.

    esempio:

    A1= Antonio (cella modificabile), la macro deve copiare il contenuto di A1 in D4 (cella protetta). quindi scrivo il seguente codice che, ripeto, mi esegue la macro ma non ripristina la protezione nella cella D4:

        Sheets("Foglio1").Unprotect

        Range("A1").Select

        Selection.Copy

        Range("D4").Select

        ActiveSheet.Paste

        Range("A1").Select

        Application.CutCopyMode = False

        Sheets("Foglio1").Protect

    End Sub

    Dove sbaglio?

    Quando tu copia la cella, stai anche copiando la proprietà sbloccata della cella A1 alla cella A4!

    Quindi prova invece qualcosa del genere:

    '=========>>

    Option Explicit

    '--------->>

    Public Sub Tester()

        Dim WB As Workbook

        Dim SH As Worksheet

        Dim srcRng As Range, destRng As Range

        Const sFoglio As String = "Foglio1"

        Const sPWord As String = ""

        Set WB = ThisWorkbook

        Set SH = WB.Sheets(sFoglio)

        With SH

            Set srcRng = .Range("A1")

            Set destRng = .Range("D4")

            .Unprotect Password:=sPWord

            destRng.Value = srcRng.Value

            .Protect Password:=sPWord

        End With

    End Sub

    '<<=========

    ===

    Regards,

    Norman

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento