• Initiateur de la discussion Initiateur de la discussion guitou13
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

guitou13

Guest
bonjour
je voudrais extraire le mot de passe de la protection d'une feuille Excel
pour accéder aux colonnes cachées.
Cela est il possible?
Merci pour vos "recettes"...
 
Re : mot de passe

Bonjour,

Voici une macro qui avec des nombres aléatoires permet de "casser" la protection de la feuille et d'afficher toutes les colonnes :

Sub OterProtection()
Application.ScreenUpdating = False
Cells.Select
On Error Resume Next
For i = 1 To 10000
mdp = Chr(Int(1 + 255 * Rnd))
ActiveSheet.Unprotect Password:=mdp
Selection.EntireColumn.Hidden = False
Next
Range("A1").Select
Application.ScreenUpdating = True
End Sub

Ceci pour rechercher un mot de passe (mdp) d'un caractère. Rechercher ensuite un mdp de 2 caractères en remplaçant par :
mdp = Chr(Int(1 + 255 * Rnd))&Chr(Int(1 + 255 * Rnd))
puis pour 3 :
mdp = Chr(Int(1 + 255 * Rnd))&Chr(Int(1 + 255 * Rnd))&Chr(Int(1 + 255 * Rnd))
etc...

Je n'arrive pas à récupérer le mot de passe mdp avec cette macro. Si quelqu'un a une idée...

A+
 
Re : mot de passe

Bonjour


job75: regardes le code VBA à la fin du message (voir lien ci-dessous)
tu y trouveras deux macros courtes pour déprotéger feuille/classeur
(sans se préoccuper du mot de passe)
Lien supprimé
 
Dernière édition:
Re : mot de passe

Re


Les codes fonctionnent dans un classeur dont le projet VBA n'est pas protégé

J'ai testé ainsi
1) Création d'un classeur vierge
2) Protection d'une feuille de ce classeur avec mot de passe : a
3) ALT+F11 -Insertion module
4)copie de la macro DéprotègeFeuille
5) Exécution de la macro

Résultat: la feuille est déprotégée instantanément.
 
Re : mot de passe

Vu merci, il faut créer la macro sur une feuille déjà protégée bien sûr (ou dans un autre classeur).
Cela dit, la macro que je propose devrait permettre après modification (je n'ai pas trouvé) de déterminer le (ou les) mots de passe. En effet j'ai constaté qu'une protection peut être ôtée par plusieurs mots de passe différents (du moins avec des chiffres).
A+

Edit : pour être clair, le problème que je souhaiterais résoudre est : comment en VBA déterminer qu'une feuille (ou un classeur) est protégée.
 
Dernière édition:
Re : mot de passe

Re

Pour déterminer si une feuille est protégée:

Code:
'Auteur : Ken Puls
[FONT=Courier]Option Explicit 
Private Function SheetProtected(TargetSheet As Worksheet) As Boolean 
     'Function purpose:  To evaluate if a worksheet is protected
     
    If TargetSheet.ProtectContents = True Then 
        SheetProtected = True 
    Else 
        SheetProtected = False 
    End If 
     
End Function 
 
Sub SimpleTest() 
     'Macro purpose:  To demonstrate use of SheetProtected Function
     '*** THIS MACRO FOR ILLUSTRATIVE PURPOSES ONLY     ***
     '*** AND IS NOT REQUIRED TO USE THE ABOVE FUNTION! ***
     
     'Assign active worksheet to variable to be tested
    Dim ws As Worksheet 
    Set ws = ActiveSheet 
     
     'Test the activesheet's protection
    If SheetProtected(ws) Then 
         'If protected
        MsgBox "Sorry, but " & ws.Name & " is protected!", _ 
        vbOKOnly + vbInformation, ws.Name & " is protected!" 
    Else 
         'If not protected
        MsgBox "Hooray!  " & ws.Name & " is not protected!", _ 
        vbOKOnly + vbInformation, ws.Name & " is unprotected!" 
    End If 
End Sub [/FONT]
 
Re : mot de passe

De nouveau merci Staple, mon problème est résolu : l'état de protection d'une feuille (contenu) est déterminé par ActiveSheet.ProtectContents.

Voici donc une macro qui répond à la question de Guitou :
- détermination du mot de passe (ici avec 2 caractères)
- affichage des colonnes masquées
- remise en place de la protection pour permettre par de nouveaux essais de déterminer d'autres mots de passe

Sub OterProtection()
On Error Resume Next
ActiveSheet.Unprotect Password:=""
If ActiveSheet.ProtectContents Then
Application.ScreenUpdating = False
Cells.Select
For i = 1 To 10000
mdp = Chr(Int(1 + 255 * Rnd)) & Chr(Int(1 + 255 * Rnd))
ActiveSheet.Unprotect Password:=mdp
If ActiveSheet.ProtectContents = False Then
Selection.EntireColumn.Hidden = False
MsgBox mdp
ActiveSheet.Protect Password:=mdp
Exit For
End If
Next
Range("A1").Select
Application.ScreenUpdating = True
End If
End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
343
  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
223
Réponses
10
Affichages
384
  • Question Question
Microsoft 365 Comptablité
Réponses
1
Affichages
325
  • Question Question
Réponses
6
Affichages
416
Réponses
5
Affichages
153
Réponses
17
Affichages
880
Réponses
7
Affichages
690
Réponses
3
Affichages
217
Réponses
3
Affichages
242
Réponses
19
Affichages
867
Retour