Blocca fogli con password



  • Blocca fogli con password
    di Gerry65 (utente non iscritto) data: 24/04/2015 11:52:21

    Salve a tutti, ho un problema con la protezione con password dei fogli in excel, e non riesco a risolvere, provo ad esporre il problema, con la speranza che qualcuno mi possa dare una mano a risolverlo.
    Tengo a precisare che la password è uguale per tutti i fogli, il problema e che volevo creare due sub su un modulo Sub Generica_Rim per rimuovere la Password e Sub Generica_Pro per proteggere i fogli. allego il codice Sub Cancella_Dati, come potete notare devo scrivere sempre il codice che rimuove le password, e alla fine dell'esecuzione della macro, riscrivere il codice che blocca i fogli, naturalmente mi ritrovo nella stessa situazione quando lancio altre macro. Volevo sapere se esiste un modo per richiamare le due sub sopra citate senza andare a riscrivere ogni volta il codice.
    Spero che qualcuno mi possa dare una mano per risolvere il problema. Ringrazio anticipatamente per l'aiuto.

     
    Sub Cancella_Dati()
    
    Application.EnableEvents = False 'Disattiva l'aggiornamento delle applicazioni, Evita lo sfarfallio mentre lavora la macro
    Application.ScreenUpdating = False 'Disattiva l'aggiornamento dello schermo, Evita lo sfarfallio mentre lavora la macro
    
    
    
       
      
    'Sheets("Turno Notte").Unprotect  'Rimuove protezione del foglio specificato
    
    Sheet("Turno Notte").Unprotect Password:="*Gerry*26@08/77@/*-#.;"  'Rimuove protezione del foglio specificato
    Sheets("Turno 1").Unprotect Password:="*Gerry*26@08/77@/*-#.;"  'Rimuove protezione del foglio specificato
    Sheets("Turno 2").Unprotect Password:="*Gerry*26@08/77@/*-#.;"  'Rimuove protezione del foglio specificato
    Sheets("Registro Utif").Unprotect Password:="*Gerry*26@08/77@/*-#.;"  'Rimuove protezione del foglio specificato
    Sheets("Impostazioni").Unprotect Password:="*Gerry*26@08/77@/*-#.;"  'Rimuove protezione del foglio specificato
    
    
    
      
      
         'Sheets("Turno 2").Range("C8:C11,C13:16").Copy 'Lepant
      
        Sheets("Turno 2").Range("C8:C11").Copy 'Copia Numeri Chiusura dal Turno 2
    
        Sheets("Turno Notte").Range("B8:B11").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False 'Prospetto Notte Icolla Numeri
        
        Sheets("Turno 2").Range("C13:C16").Copy 'Copia Numeri Chiusura dal Turno 2
    
        Sheets("Turno Notte").Range("B13:B16").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False 'Prospetto Notte Icolla Numeri Apertura
        
        Sheets("Turno 2").Range("F23").Copy 'Copia Residuo Cassa dal turno 2
        
        
        'Turno Notte Icolla Cassa Inizio
        Sheets("Turno Notte").Range("B23").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False 'Prospetto Notte Icolla Numeri Apertura
      
      
      'Turno 2 Copia Residuo Cassa
      Sheets("Turno 2").Range("M35:N35").Copy 'Copia Residuo Cassa dal turno 2
      ''''''''''''''''''
          'Turno Notte Icolla Residuo Cassa
      Sheets("Turno Notte").Range("M19:N19").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
            xlNone, SkipBlanks:=False, Transpose:=False 'Prospetto Notte Icolla Numeri Apertura
             
             
              'Sheets("Turno Notte").Range("B23,M19").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False 'Prospetto Notte Icolla Numeri Apertura
         
         
            'Turno Notte Cancella i Dati
        Sheets("Turno Notte").Range("C8:C11,C13:C16,F22,  A26:B34,C26:E33,F26:F34,  A39:A46,B38:B46,  C38:F45,F46, B50:B52,F53,A57:F62,I9:I15,M9:M16,I25:I31,M25:M32").ClearContents 'Turno Notte cancella i dati
        
             'Turno 1 Cancella i Dati
        Sheets("Turno 1").Range("C8:C11,C13:C16,F22,A26:B34,C26:E33,F26:F34,A39:A46,B38:B46,C38:F45,F46,B50:B52,F53,A57:F62,I9:I15,M9:M16,I25:I31,M25:M32").ClearContents 'Turno 1 cancella i dati
        'Sheets("Turno 1").Range("C8:C11,C13:C16,F22,B26:B34,F26:F34,B38:B46,F38:F46,B50:B52,F53,A57:F62,I9:I15,M9:M16,I25:I31,M25:M32").ClearContents 'Turno 1 cancella i dati
        
            'Turno 2 Cancella i Dati
        Sheets("Turno 2").Range("C8:C11,C13:C16,F22,A26:B34,C26:E33,F26:F34,A39:A46,B38:B46,C38:F45,F46,B50:B52,F53,A57:F62,I9:I15,M9:M16,I25:I31,M25:M32").ClearContents 'Turno 2 cancella i dati
        'Sheets("Turno 2").Range("C8:C11,C13:C16,F22,B26:B34,F26:F34,B38:B46,F38:F46,B50:B52,F53,A57:F62,I9:I15,M9:M16,I25:I31,M25:M32").ClearContents 'Turno 2 cancella i dati
    
         'Cancella dati Registro Utif
          Sheets("Registro Utif").Range("F11:P11,L14:L16").ClearContents
          
                   'Proteggi fogli
                  
                  'Call Turno_Notte_Pro
                  'Call Turno_1_Pro
                  'Call Turno_2_Pro
                  'Call Registro_Utif_Pro
                  'Call Impostazioni_Pro
                   
                   
               Sheets("Turno Notte").Protect Password:="*Gerry*26@08/77@/*-#.;", DrawingObjects:=False, Contents:=True, Scenarios:= _
                False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
                :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
                AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
                AllowUsingPivotTables:=True
                
              'Sheets("Turno Notte").Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
                False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
                :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
                AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
                AllowUsingPivotTables:=True
                'ActiveSheet.EnableSelection = xlUnlockedCells 'Seleziona celle Bloccate
          
            'Sheets("Turno 1").Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
                False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
                :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
                AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
                AllowUsingPivotTables:=True
                'ActiveSheet.EnableSelection = xlUnlockedCells 'Seleziona celle Bloccate
          
            'Sheets("Turno 2").Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
                False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
                :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
                AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
                AllowUsingPivotTables:=True
                'ActiveSheet.EnableSelection = xlUnlockedCells 'Seleziona celle Bloccate
          
          'Sheets("Registro Utif").Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
                False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
                :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
                AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
                AllowUsingPivotTables:=True
                'ActiveSheet.EnableSelection = xlUnlockedCells 'Seleziona celle Bloccate
    
    Application.EnableEvents = True 'Attiva l'aggiornamento delle applicazioni, Evita lo sfarfallio mentre lavora la macro
    Application.ScreenUpdating = True 'Attiva l'aggiornamento dello schermo, Evita lo sfarfallio mentre lavora la macro
    
    
        
    
        End Sub



  • di Lucas87 data: 24/04/2015 12:37:03

    Ciao
    Puoi cancellare tutto quello che riguarda la protezione e mettere questo in ThisWorkbook (Questa_cartella_di_lavoro)
    Il codice, all'apertura del file, mette la protezione con password a tutti i fogli (aggiungi tu gli altri parametri al tipo di protezione dopo la password); la proprietà userinterfaceonly:=True permette di riuscire comunque a fare le modifiche tramite codice.

     
    Private Sub Workbook_Open()
    For Each sh In Worksheets
        sh.Protect Password:="psw", userinterfaceonly:=True
    Next
    End Sub
    



  • di Gerry65 (utente non iscritto) data: 24/04/2015 17:54:31

    Grazie Lucas87 ottima soluzione, e tante righe di codice in meno! Grazie tante