Mot de passe

Hervé

XLDnaute Barbatruc
Coucou les copains ^^

tiens, j'en profite d'etre de passage pour poser une question.

connaitriez vous une solution rapide pour affecter un mot de passe (a l'ouverture) à environ 500 fichiers répartis sur 8 repertoires ?

d'avance merci
 

job75

XLDnaute Barbatruc
Re : Mot de passe

Bonjour Hervé, le forum,

Ma foi [Edit : sans s pour les puristes] ta question ne me paraît pas très claire ;)

Mais je suppose que tu ouvres tous ces fichiers en exécutant 2 boucles, la 1ère pour les répertoires, la 2ème pour les fichiers.

Alors dans la 2ème boucle, pour chaque fichier ouvert :

- S'il s'agit de créer une macro Workbook_Open dans ThisWorkbook (un code avec une InputBox pour le mot de passe), ce n'est pas vraiment ma tasse de thé et il y a des exemples sur le forum

- S'il s'agit pour ouvrir le fichier d'entrer toujours le même mot de passe (par exemple "toto"), alors ce code :

SendKeys "toto~"

Tout ça me paraît trop simple...

A+
 
Dernière édition:

Hervé

XLDnaute Barbatruc
Re : Mot de passe

coucou job :)

non non, je veux mettre un mot de passe aux 500 fichiers ^^

il me faut proteger tout les fichiers excel se trouvant dans des sous répertoire.

J'ai la flemme de les ouvrir un par un, j'ai la flemme de faire une macro pour ca (si c'est possible par macro d'ailleurs)

je me demandais donc si il existait pas un petit soft qui serait moins flemmard que moi :p

a plus
 

kiki29

XLDnaute Barbatruc
Re : Mot de passe

Salut, je n'ai pas trouvé de soft faisant cela, par contre en adaptant par exemple Lien supprimé
( en remplaçant la création de liens par le chemin complet du fichier )
Ensuite grace au macro recorder on obtient qqch comme

Code:
Sub Mdp()
    Workbooks.Open Filename:="C:\Transfert\MDP\Test.xls"
    ActiveWorkbook.SetPasswordEncryptionOptions PasswordEncryptionProvider:= _
        "Microsoft Strong Cryptographic Provider", PasswordEncryptionAlgorithm:="RC4", _
        PasswordEncryptionKeyLength:=128, PasswordEncryptionFileProperties:=True
    
    ActiveWorkbook.SaveAs Filename:="C:\Transfert\MDP\Test_Mdp.xls", FileFormat:= _
        xlNormal, Password:="Azerty", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWindow.Close
End Sub

Ce qui ne devrait pas te poser de problemes majeurs pour balayer la liste obtenue via le 1er fichier modifié
en adaptant la macro obtenue plus haut

PS : au final et rapidement qqch qui devrait te convenir
 

Pièces jointes

  • ListeXls_AjoutPassword.zip
    17.3 KB · Affichages: 26
Dernière édition:

job75

XLDnaute Barbatruc
Re : Mot de passe

Re, bonjour kiki29,

Oui, il y a la solution du mot de passe dans Enregistrer sous.

Alors en ouvrant les fichiers un par un, le code est assez simple. Ma solution :

Code:
Sub ProtegeFichiers()
Dim Dossier(), i As Byte, chemin$, nomfich$
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next 'au cas où des fichiers sont déjà protégés
Dossier = Array("Dossier1", "Dossier2")
For i = 0 To UBound(Dossier)
  chemin = ThisWorkbook.Path & "\" & Dossier(i) & "\"
  nomfich = Dir(chemin & "*.xls") '1er fichier du dossier
  While nomfich <> ""
    SendKeys "{ESC}" 'ferme la boîte de dialogue du mot de passe quand le fichier est protégé
    Workbooks.Open chemin & nomfich
    If Err = 0 Then 'si le fichier n'est pas protégé
      Workbooks(nomfich).SaveAs chemin & nomfich, Password:="toto" 'la fenêtre du fichier peut être masquée
      Workbooks(nomfich).Close
    End If
    Err = 0
    nomfich = Dir 'fichier suivant du dossier
  Wend
Next
End Sub

Pour tester, j'ai mis des fichiers non protégés dans les répertoires nommés Dossier1 et Dossier2, qui doivent être des sous-répertoires de celui du fichier où est la macro.

Edit : si un fichier porte le même nom que celui où est la macro, il ne peut pas être ouvert, donc protégé.

A+
 

Pièces jointes

  • Test.xls
    38 KB · Affichages: 44
  • Test.xls
    38 KB · Affichages: 47
  • Test.xls
    38 KB · Affichages: 50
Dernière édition:

Discussions similaires

Réponses
2
Affichages
168
Réponses
4
Affichages
628

Statistiques des forums

Discussions
312 237
Messages
2 086 486
Membres
103 232
dernier inscrit
logan035