Moderatori: Anthony47, Flash30005
Sub Proteggi_Tutti_i_Fogli()
Application.ScreenUpdating = False
Dim Ws As Worksheet
For Each Ws In ActiveWorkbook.Worksheets
Ws.Protect ' <<----- Protegge senza Password
' Ws.Protect Password:="password" ' <<----- Protegge con Password
Next Ws
Application.ScreenUpdating = True
End Sub
Sub SProteggi_Tutti_i_Fogli()
Application.ScreenUpdating = False
Dim Ws As Worksheet
For Each Ws In ActiveWorkbook.Worksheets
Ws.Unprotect ' <<----- SProtegge senza Password
' Ws.Unprotect Password:="password" ' <<----- SProtegge con Password
Next Ws
Application.ScreenUpdating = True
End Sub
ActiveWindow.DisplayGridlines = False
Sub Proteggi_Tutti_i_Fogli()
Application.ScreenUpdating = False
Dim Ws As Worksheet
For Each Ws In ActiveWorkbook.Worksheets
Ws.Protect ' <<----- Protegge senza Password
Ws.DisplayGridlines = False
' Ws.Protect Password:="password" ' <<----- Protegge con Password
Next Ws
Application.ScreenUpdating = True
End Sub
Sub Proteggi_Tutti_i_Fogli()
Application.ScreenUpdating = False
Dim Ws As Worksheet
For Each Ws In ActiveWorkbook.Worksheets
Ws.Protect ' <<----- Protegge senza Password
Ws.Activate
ActiveWindow.DisplayGridlines = False
' Ws.Protect Password:="password" ' <<----- Protegge con Password
Next Ws
Application.ScreenUpdating = True
End Sub
Sub cancellazionedati()
On Error GoTo gesterr
'
' cancellazionedati Macro
'
'Sub ClearRanges()
If MsgBox("Attenzione! Sei sicuro di cancellare ?", vbYesNoCancel, "Cancellazione") = vbYes Then
Dim indice As Long
For indice = 2 To 45
Worksheets(indice).Range("b12:e42,h12:n42,p12:Ac42,ag12:aj42,z51,j43,k43,l43"). _
ClearContents
Next indice
If Err = 0 Then
MsgBox "tutto ok"
End If
End If
Exit Sub
gesterr:
MsgBox "qualcosa non è andato" & Err.Description
End Sub
Sub cancellazionedati()
On Error GoTo gesterr
'
' cancellazionedati Macro
'
'Sub ClearRanges()
If MsgBox("Attenzione! Sei sicuro di cancellare ?", vbYesNoCancel, "Cancellazione") = vbYes Then
Dim indice As Long
' QUI inserisici la chiamata alla macro che SPROTEGGE TUTTI i FOGLI
For indice = 2 To 45
Worksheets(indice).Range("b12:e42,h12:n42,p12:Ac42,ag12:aj42,z51,j43,k43,l43"). _
ClearContents
Next indice
If Err = 0 Then
MsgBox "tutto ok"
End If
End If
Exit Sub
gesterr:
MsgBox "qualcosa non è andato" & Err.Description
End Sub
Sub cancellazionedati()
On Error GoTo gesterr
'
' cancellazionedati Macro
'
'Sub ClearRanges()
If MsgBox("Attenzione! Sei sicuro di cancellare ?", vbYesNoCancel, "Cancellazione") = vbYes Then
Dim indice As Long
' QUI inserisici la chiamata alla macro che SPROTEGGE TUTTI i FOGLI
For indice = 2 To 45
Worksheets(indice).Range("b12:e42,h12:n42,p12:Ac42,ag12:aj42,z51,j43,k43,l43"). _
ClearContents
Next indice
If Err = 0 Then
MsgBox "tutto ok"
End If
End If
Exit Sub
gesterr:
MsgBox "qualcosa non è andato" & Err.Description
QUI inserire la chiamata alla macro che PROTEGGE TUTTI i FOGLI
End Sub
Sub Cancellazione_Dati()
On Error GoTo Gesterr
If MsgBox("Attenzione! Sei sicuro di cancellare ?", vbYesNoCancel, "Cancellazione") = vbYes Then
Dim indice As Long
' QUI inserisici la chiamata alla macro che SPROTEGGE TUTTI i FOGLI
Call SProteggi_Tutti_i_Fogli
For indice = 2 To 45
Worksheets(indice).Range("b12:e42,h12:n42,p12:Ac42,ag12:aj42,z51,j43,k43,l43"). _
ClearContents
Next indice
MsgBox "tutto ok"
End If
GoTo Fine
Gesterr:
MsgBox "qualcosa non è andato" & Err.Description
Fine:
' QUI inserisici la chiamata alla macro che PROTEGGE TUTTI i FOGLI
Call Proteggi_Tutti_i_Fogli
End Sub
ricky53 ha scritto:Ciao,
prova questo esempio (è la tua macro alla quale ho fatto delle modifiche)
- Codice: Seleziona tutto
Sub Cancellazione_Dati()
On Error GoTo Gesterr
If MsgBox("Attenzione! Sei sicuro di cancellare ?", vbYesNoCancel, "Cancellazione") = vbYes Then
Dim indice As Long
' QUI inserisici la chiamata alla macro che SPROTEGGE TUTTI i FOGLI
Call SProteggi_Tutti_i_Fogli
For indice = 2 To 45
Worksheets(indice).Range("b12:e42,h12:n42,p12:Ac42,ag12:aj42,z51,j43,k43,l43"). _
ClearContents
Next indice
MsgBox "tutto ok"
End If
GoTo Fine
Gesterr:
MsgBox "qualcosa non è andato" & Err.Description
Fine:
' QUI inserisici la chiamata alla macro che PROTEGGE TUTTI i FOGLI
Call Proteggi_Tutti_i_Fogli
End Sub
Anthony47 ha scritto:Ciao gelsomino, benvenuto nel forum.
Se il messaggio dice che non puo' manipolare celle unite allora vuol dire che le celle unite non sono state eliminate; esattamente su quale istruzione hai l' errore? (premi debug; indica quale istruzione e' evidenziata, copiandola dalla tua macro e incollandola nel tuo prossimo messaggio).
Ciao
For indice = 2 To 45 ' ESISTENTE
Worksheets(indice).Select '<<< AGGIUNTA
Anthony47 ha scritto:Ok.
Togli l' istruzione On Error GoTo Gesterr (in testa) e rilancia la macro; avrai cosi' la possibilita' di individuare la riga che va in errore.
Immagino che sara' la riga Worksheets(indice).Range("b12:e42,h12:n42,p12:A etc etc, per cui sara' importante capire di quale foglio si parla. Per capirlo puoi mettere per prova questa istruzioneIl foglio selezionato e' quello che causa l' errore; ispezionalo per verificare che le celle che vai a pulire non sono "unite".
- Codice: Seleziona tutto
For indice = 2 To 45 ' ESISTENTE
Worksheets(indice).Select '<<< AGGIUNTA
Se non risolvi, indica quale e' l' istruzione che va in errore (copia dalla tua macro la riga/righe evidenziate e incolla nel tuo messaggio).
Ciao
Torna a Applicazioni Office Windows
Macro protezione foglio con password non funge Autore: xilofono |
Forum: Applicazioni Office Windows Risposte: 13 |
Trsposizione valori stessa voce tra fogli Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 1 |
Visitano il forum: Nessuno e 29 ospiti