Récupération d'un onglet masqué avec mot de passe
j
Bonjour à tous
voilà le soucis du jour :
j'ai un onglet masqué (feuil14) et lorsque je clique sur feuil14 dans l'éditeur VBA dans la section "propriétés"
il est indiqué dans la ligne "Password" et la ligne" writePassword", j'ai la liste des mot de passe; mais je ne sais plus comment faire pour le faire réapparaître.
Merci de me rappeler la procédure à suivre.
Oups! autant pour moi
Bonjour,
Essaie la macro suivante :
Sub Deproteger()
Dim A As Byte, B As Byte, C As Byte, D As Byte, E As Byte
Dim F As Byte, G As Byte, H As Byte, I As Byte, J As Byte
Dim K As Byte, L As Byte, M As Byte, N As Byte, O As Byte
Dim Reponse As Byte, Temps As Variant
Dim Cible As Object, Passe As String
' Demande ce qu'il faut déprotéger.
Reponse = MsgBox("Voulez-vous déprotéger le classeur actif ?" & vbCrLf & _
"Si vous répondez non, c'est la feuille active qui sera déprotégée. ", _
vbYesNoCancel, "Déprotectionnateur")
On Error Resume Next
' Teste ce qu'il faut déprotéger.
Select Case Reponse
Case vbYes
' Définit le classeur actif comme cible à déprotéger.
Set Cible = ActiveWorkbook
' Teste si le classeur est protégé.
If Not (Cible.ProtectStructure Or Cible.ProtectWindows) Then
MsgBox "Le classeur actif n'est pas protégé. " & vbCrLf & _
vbCrLf & "Andouille !", vbOKOnly, "Déprotectionnateur"
Exit Sub
End If
' Teste si le classeur est protégé sans mot de passe.
Err.Clear
Cible.Unprotect vbNullString
If Err = 0 Then
MsgBox "La protection du classeur actif a été supprimée. " _
& vbCrLf & "Il n'y avait pas de mot de passe. Petit rigolo !", _
vbOKOnly, "Déprotectionnateur"
Exit Sub
End If
Case vbNo
' Définit la feuille active comme cible à déprotéger.
Set Cible = ActiveSheet
' Teste si la feuille est protégée (on ne teste pas UserInterfaceOnly qui ne peut être positionné que par macro
' et n'est pas enregistré avec le classeur).
If Not (Cible.ProtectContents Or Cible.ProtectDrawingObjects Or _
Cible.ProtectScenarios) Then
MsgBox "La feuille active n'est pas protégée. " & vbCrLf & _
vbCrLf & "Patate !", vbOKOnly, "Déprotectionnateur"
Exit Sub
End If
' Teste si la feuille est protégée sans mot de passe.
Err.Clear
Cible.Unprotect vbNullString
If Err = 0 Then
MsgBox "La protection de la feuille active a été supprimée. " _
& vbCrLf & "Il n'y avait pas de mot de passe. Quelle burne !", _
vbOKOnly, "Déprotectionnateur"
Exit Sub
End If
Case Else
' Annulation demandée par l'utilisateur.
MsgBox String(14, " ") & "Ciao !", vbOKOnly, "Déprotectionnateur"
Exit Sub
End Select
' Note l'instant de départ.
Temps = Timer
' Boucles de calcul des mots de passe. On utilise ici les codes ascii des caractères "0" et "1".
For A = 48 To 49
For B = 48 To 49
For C = 48 To 49
For D = 48 To 49
For E = 48 To 49
For F = 48 To 49
For G = 48 To 49
For H = 48 To 49
For I = 48 To 49
For J = 48 To 49
For K = 48 To 49
For L = 48 To 49
For M = 48 To 49
For N = 48 To 49
For O = 48 To 49
' Calcule le mot de passe.
Passe = Chr(A) & Chr(B) & Chr(C) & Chr(D) & Chr(E) & _
Chr(F) & Chr(G) & Chr(H) & Chr(I) & Chr(J) & _
Chr(K) & Chr(L) & Chr(M) & Chr(N) & Chr(O)
' Essaie de déprotéger la cible.
Err.Clear
Cible.Unprotect Passe
' Teste si la cible est bien déprotégé.
If Err = 0 Then
' Si oui, affiche le mot de passe et sort.
MsgBox "La protection a été supprimée en " & _
Timer - Temps & " secondes. " & vbCrLf & _
"Le mot de passe équivalent trouvé est :" & _
vbCrLf & vbCrLf & String(28, " ") & Passe, _
vbOKOnly, "Déprotectionnateur"
Exit Sub
End If
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
' Message impossible à atteindre.
MsgBox "Mot de passe introuvable." & vbCrLf & vbCrLf & _
"C'est pas normal !!!", vbOKOnly, "Déprotectionnateur"
End Sub
j
Ok merci bcq à vous deux.
Bonne journée à tous.
Roland