Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Déprotéger toutes les feuilles d'un classeur

5 réponses
Avatar
jpierrethillard
Bonjour,
J'ai cette macro qui bug dans la boucle for next sur la ligne:
Sheets(i).unprotect Password:=3D"toto"
Je ne comprend pas pourquoi. Est-ce que quelqu'un saurait me dire?

Merci JP


Sub DeprotegeFeuilles()
Dim rep As String, nombre As Integer, i As Integer
rep =3D InputBox("Entrer le mot de passe?")
If rep <> "mot" Then
MsgBox "Impossible d'ex=E9cuter la proc=E9dure " _
& "sans le mot de passe !"& " Mot de passe incorrect!"
Exit Sub
End If
' D=E9port=E8ge toutes les feuilles du classeur
nombre =3D ActiveWorkbook.Sheets.Count
Application.ScreenUpdating =3D False
For i =3D 1 To nombre
Sheets(i).Unprotect Password:=3D"toto"
Next i
End Sub

5 réponses

Avatar
ChrisV
Bonjour jpierre,

L'erreur se produit lorsque le MdP pour lancer la proc est correct, mais que
le MdP associé à la protection d'un onglet du classeur n'est pas conforme...
pour gérer cette erreur tu pourrais avoir:

...
On Error Resume Next
For i = 1 To nombre
Sheets(i).Unprotect Password:="toto"
Next i
End Sub


ChrisV



a écrit dans le message de news:

Bonjour,
J'ai cette macro qui bug dans la boucle for next sur la ligne:
Sheets(i).unprotect Password:="toto"
Je ne comprend pas pourquoi. Est-ce que quelqu'un saurait me dire?

Merci JP


Sub DeprotegeFeuilles()
Dim rep As String, nombre As Integer, i As Integer
rep = InputBox("Entrer le mot de passe?")
If rep <> "mot" Then
MsgBox "Impossible d'exécuter la procédure " _
& "sans le mot de passe !"& " Mot de passe incorrect!"
Exit Sub
End If
' Déportège toutes les feuilles du classeur
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Sheets(i).Unprotect Password:="toto"
Next i
End Sub
Avatar
JPMonnier
Bonjour,
Sub a()
nb = Sheets.Count
For I = 1 To nb
Sheets(I).Unprotect Password:="toto"
Next
End Sub
Ca devrait marcher

--
Cordialement


a écrit dans le message de
news:
Bonjour,
J'ai cette macro qui bug dans la boucle for next sur la ligne:
Sheets(i).unprotect Password:="toto"
Je ne comprend pas pourquoi. Est-ce que quelqu'un saurait me dire?

Merci JP


Sub DeprotegeFeuilles()
Dim rep As String, nombre As Integer, i As Integer
rep = InputBox("Entrer le mot de passe?")
If rep <> "mot" Then
MsgBox "Impossible d'exécuter la procédure " _
& "sans le mot de passe !"& " Mot de passe incorrect!"
Exit Sub
End If
' Déportège toutes les feuilles du classeur
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Sheets(i).Unprotect Password:="toto"
Next i
End Sub
Avatar
JB
Bonjour,

Le mot de passe est-il bien 'toto'?

JB

On 26 jan, 16:01, wrote:
Bonjour,
J'ai cette macro qui bug dans la boucle for next sur la ligne:
Sheets(i).unprotect Password:="toto"
Je ne comprend pas pourquoi. Est-ce que quelqu'un saurait me dire?

Merci JP

Sub DeprotegeFeuilles()
Dim rep As String, nombre As Integer, i As Integer
rep = InputBox("Entrer le mot de passe?")
If rep <> "mot" Then
    MsgBox "Impossible d'exécuter la procédure " _
        & "sans le mot de passe !"& " Mot de passe incorrect!"
    Exit Sub
End If
' Déportège toutes les feuilles du classeur
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
    Sheets(i).Unprotect Password:="toto"
Next i
End Sub


Avatar
MichDenis
Essaie ceci : Tu dois t'assurer que le mot de passe
est le même pour chacune des feuilles.

'--------------------------------------
Sub DeprotegeFeuilles()
Dim MotDePasse As String
Dim Rep As String, Sh As Worksheet

MotDePasse = "mot"

Do
Rep = InputBox("Entrer le mot de passe?")
If Rep = "" Then Exit Sub
If Rep <> MotDePasse Then
If MsgBox("Impossible d'exécuter la procédure " _
& "sans le mot de passe. !" & vbCrLf & vbCrLf & _
"Désirez-vous réessayer ?", vbCritical + _
vbYesNo, "Attention") = vbNo Then
Exit Sub
End If
End If
Loop Until Rep = MotDePasse

For Each Sh In Worksheets
Sh.Unprotect MotDePasse
Next
End Sub
'--------------------------------------




a écrit dans le message de news:

Bonjour,
J'ai cette macro qui bug dans la boucle for next sur la ligne:
Sheets(i).unprotect Password:="toto"
Je ne comprend pas pourquoi. Est-ce que quelqu'un saurait me dire?

Merci JP


Sub DeprotegeFeuilles()
Dim rep As String, nombre As Integer, i As Integer
rep = InputBox("Entrer le mot de passe?")
If rep <> "mot" Then
MsgBox "Impossible d'exécuter la procédure " _
& "sans le mot de passe !"& " Mot de passe incorrect!"
Exit Sub
End If
' Déportège toutes les feuilles du classeur
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Sheets(i).Unprotect Password:="toto"
Next i
End Sub
Avatar
jpierrethillard
ChrisV,

le: "on Error Resume Next" empeche le plantage.
Merci à tous

JP

On 26 jan, 17:12, "ChrisV" wrote:
Bonjour jpierre,

L'erreur se produit lorsque le MdP pour lancer la proc est correct, mais q ue
le MdP associé à la protection d'un onglet du classeur n'est pas confo rme...
pour gérer cette erreur tu pourrais avoir:

...
On Error Resume Next
For i = 1 To nombre
    Sheets(i).Unprotect Password:="toto"
Next i
End Sub



a écrit dans le message de news:

Bonjour,
J'ai cette macro qui bug dans la boucle for next sur la ligne:
Sheets(i).unprotect Password:="toto"
Je ne comprend pas pourquoi. Est-ce que quelqu'un saurait me dire?

Merci JP

Sub DeprotegeFeuilles()
Dim rep As String, nombre As Integer, i As Integer
rep = InputBox("Entrer le mot de passe?")
If rep <> "mot" Then
    MsgBox "Impossible d'exécuter la procédure " _
        & "sans le mot de passe !"& " Mot de passe incorrect!"
    Exit Sub
End If
' Déportège toutes les feuilles du classeur
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
    Sheets(i).Unprotect Password:="toto"
Next i
End Sub