Condividi tramite

PROTEGGERE FOGLIO CHE HA MACRO

Anonimo
2011-10-24T12:34:11+00:00

Buongiorno ,ho una cartella excell con vari fogli e vorrei proteggere il foglio1  bloccando le celle (come solito fare...da revisione,ptoteggi foglio ecc..) che contengono delle formule, però contiene anche una macro per nascondere e per far apparire delle colonne vuote (data da Mauro http://answers.microsoft.com/it-it/office/forum/office\_2007-excel/stampa-excell/4f49ac1f-0385-4c6a-8cce-82da820b7abb ) .il problema è che se attivo la protezione e poi lancio la macro tramite due CommandButton mi va in errore la macro.La domanda che vi pongo è la seguente ,è possibile proteggere le celle contenenti delle formule (da revisione,ptoteggi foglio ecc..) e non avere problemi con le macro che ci sono nello stesso foglio?

grazie

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

Risposta accettata dall'autore della domanda

  1. Anonimo
    2011-10-25T07:36:17+00:00

     ho provato ma modificare il codice e a mettere la protezione delle celle bloccate nel foglio però quando premo il commandbox "nascondi colonne" ho un errore.

    Nell'immagine sotto si vede

    http://imageshack.us/photo/my-images/830/masterdq.jpg/

    Password ha 2 s.

    Public Sub mNascondiColonne()

        Dim rng As Range

        Dim c As Range

        Dim sh As Worksheet

        Dim s As String

        Dim lng As Long

        Dim bln As Boolean

        Set sh = ThisWorkbook.Worksheets("Foglio1")

        Application.ScreenUpdating = False

        With sh

            .Unprotect Password:="123"

            For lng = 19 To 35

                s = ""

                s = f(lng)

                bln = False

                Set rng = .Range(s & "7:" & s & "38")

                For Each c In rng

                    If c.Value <> "" Then bln = True

                Next

                If bln = False Then

                    .Range(s & ":" & s).Columns.EntireColumn.Hidden = True

                End If

            Next

            .Protect Password:="123"

        End With

        Application.ScreenUpdating = True

        Set c = Nothing

        Set rng = Nothing

        Set sh = Nothing

    End Sub

    Public Sub mMostraColonne()

        Dim sh As Worksheet

        Set sh = ThisWorkbook.Worksheets("Foglio1")

        With sh

            .Unprotect Password:="123"

                .Range("S:AI").Columns.EntireColumn.Hidden = False

            .Protect Password:="123"

        End With

        Set sh = Nothing

    End Sub

    Private Function f(ByVal lng As Long) As String

         f = Split(Cells(1, lng).Address( _

             True, False, xlA1, False), "$")(0)

     End Function

    La risposta è stata utile?

    0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-10-24T17:42:53+00:00

    ho provato ma modificare il codice e a mettere la protezione delle celle bloccate nel foglio però quando premo il commandbox "nascondi colonne" ho un errore.

    Nell'immagine sotto si vede

    http://imageshack.us/photo/my-images/830/masterdq.jpg/

    tabella

    http://imageshack.us/photo/my-images/198/2masterpippocopia.jpg/

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-10-24T15:17:11+00:00

    Ciao Mauro scusa la mia ignoranza ma il codice che mi hai dato devo copiarlo in un nuovo modulo,o nel codice del commandbutton nascondi e mostra colonne?

    grazie

    mMostraColonne è già finito e sostituisce  il vecchio. Cambia eventualmente il nome del foglio con il tuo e, ovviamente, modifica la password con la tua.

    Per mNascondiColonne, devi solo inserire:

     .Unprotect Pasword:="tuaPassword"

    subito dopo a With sh

    e:

     .Protect Pasword:="tuaPassword"

    prima di End With. Anche qui, modifica nome del foglio e password con i tuoi.

    Sempre che io abbia capito quello che vuoi fare. Fai sapere, grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-10-24T15:01:34+00:00

    Ciao Mauro scusa la mia ignoranza ma il codice che mi hai dato devo copiarlo in un nuovo modulo,o nel codice del commandbutton nascondi e mostra colonne?

    grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2011-10-24T12:52:58+00:00

    Buongiorno ,ho una cartella excell con vari fogli e vorrei proteggere il foglio1  bloccando le celle (come solito fare...da revisione,ptoteggi foglio ecc..) che contengono delle formule, però contiene anche una macro per nascondere e per far apparire delle colonne vuote (data da Mauro http://answers.microsoft.com/it-it/office/forum/office\_2007-excel/stampa-excell/4f49ac1f-0385-4c6a-8cce-82da820b7abb ) .il problema è che se attivo la protezione e poi lancio la macro tramite due CommandButton mi va in errore la macro.La domanda che vi pongo è la seguente ,è possibile proteggere le celle contenenti delle formule (da revisione,ptoteggi foglio ecc..) e non avere problemi con le macro che ci sono nello stesso foglio?

    grazie

    Se(se) ho capito, prova:

    Public Sub mMostraColonne()

        With ThisWorkbook.Worksheets("Foglio1")

            .Unprotect Pasword:="tuaPassword"

            .Range("S:AI").Columns.EntireColumn.Hidden = False

            .Protect Password:="tuaPassword"

        End With

    End Sub

    Stesse istruzioni Unprotect/Protect per la macro mNascondiColonne subito dopo With e subito prima di End With.

    La risposta è stata utile?

    0 commenti Nessun commento