Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Déprotéger mon classeur

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 !

Cydor007

XLDnaute Occasionnel
Bonjour,
J'aimerais savoir de quel façon je peux corriger mon code. J'ai vérouillé mon classeur avec le mot de passe suivant: 123, mais je n'arrive pas à faire fonctionner ma macro.
De plus à la fin je veux remettre mon mot de passe.

Voici le code:

Private Sub CommandButton1_Click()
If Not Len(TextBoxNumero) = 4 Then
MsgBox "Le numéro doit comporter 4 chiffres !" & vbCrLf & "Veuillez recommencer", vbOKOnly + vbExclamation, "NUMERO NON VALIDE"
Exit Sub
End If
Workbook.Unprotect Password = 123
ActiveWorkbook.Unprotect
Sheets("Transfert de données (log)").Visible = True
Sheets("Transfert de données (log)").Select
Range("M6").Value = TextBoxNumero
Range("A6:M6").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Générateur").Visible = True
Sheets("Générateur").Select
Range("P53").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Sheets("Bride").Select
Rows("10:10").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A10").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("A9:M9").Select
Selection.Copy
Range("A10:M10").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("A10").Select
ActiveWorkbook.Save
ActiveWindow.Close
Sheets("Formulaire moule O-1").Select
Sheets("Générateur").Visible = False
Sheets("Transfert de données (log)").Visible = False
ActiveWorkbook.Protect
Workbook.Protect Password = 123
UserForm6.Hide
End Sub

Quel est le problème?.

Merci

Audrey🙂
 
Re : Déprotéger mon classeur

Salut Cydor007 et le forum
Quel est le problème?
Tu n'utilises pas les balises ? 😛

En étant un peu plus sérieux : Tu donnes un code qui ne fonctionne pas comme tu veux, tu ne donnes aucune ligne en erreur, aucune indication de ce qui se passe et tu espères qu'on découvre tout ? Ma boule de cristal est en grève !
Code:
Workbook.Unprotect Password = 123
comprend pas ce que ça veut dire : on doit enlever la protection d'un classeur, et si on est sage on saura lequel ?
Code:
...
Selection.Copy
    Sheets("Générateur").Visible = True
    Sheets("Générateur").Select
    Range("P53").Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    Sheets("Bride").Select
On copie la sélection dans le presse-papier
on affiche une feuille, on attribue après à une autre sélection un lien hypertexte. Et on en fait quoi du presse-papier ? À quoi ça a servi de le remplir ?

Je ne suis pas allé plus loin ; tu as une macro faite sans logique, et aucune indication de ce qu'elle est supposée faire.
Tu utilises des Select/Selection, qui ne servent qu'à ralentir les codes
Pas moyen de faire quelque chose de correct sans plus d'infos : que doit faire la macro ?
Rappel : on ne connaît d'un problème que ce que nous expliquent les postes. Tout ce qui semble évident... ne l'est que pour quelqu'un qui utilise régulièrement le fichier (qu'on a pas). Et si on doit deviner ou interpréter quoi que ce soit, la Loi de Murphy nous dit que se sera de manière erronée.
A+
 
Re : Déprotéger mon classeur

Salut,

Désolé de ne pas être plus explicite. C'est que mon fichier est très lourd.

Ce qui ne foncctionne pas c'est la ligne suivante:

Workbook.Unprotect Password = 123
ActiveWorkbook.Unprotect


et

ActiveWorkbook.Protect
Workbook.Protect Password = 123


La macro doit copier un no de dessin dans le TextBoxNumero et l'écrire dans l'onglet Transfert de données (log). Le problème s'est que je dois protèger mon classeur pour donner accès qu'à l'onglet Formulaire moule O-1. J'ai ajouté un mot de passe pour enlever la protection du classeur, car tous les autres onglets de mon ficchier sont invisibles.

Le but s'est d'enlever la protection du classeur, exécuter la macro tel quelle et remettre la protection du classeur à chaque fois. Présentement ma base de donnée est dans un fichier externe (Range("P53").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True). La macro actuelle, s'elle qui est dans mon exemple, fait partie du formulaire que je suis en train de monter.

Est-ce que j'ai été assez clair?.

Je veux juste déprotèger mon classeur avant d'exécuter ma macro.....

Merci

Cydor
 
Dernière édition:
Re : Déprotéger mon classeur

Bonjour Cydor, le forum,

Il me semble que la ligne de code correcte pour la protection du classeur avec mot de passe est :

ActiveWorkbook.Unprotect ("motdepasse")

ActiveWorkbook.Protect ("motdepasse")



Blord
 
- 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

Discussions similaires

Réponses
10
Affichages
789
Réponses
18
Affichages
592
Réponses
2
Affichages
397
Réponses
17
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…