verrouiller un fichier excel avec une macro

verrouiller un fichier excel avec une macro - VB/VBA/VBS - Programmation

Marsh Posté le 07-09-2016 à 10:08:27    

bonjour,
 
Je cherche un moyen d'automatiser la pose d'un mot de passe sur un fichier excel, via une ligne de code dans une macro.
 
Je m'explique :  
 
j'ai un fichier contenant des données commerciales d'une cinquantaine de villes. Via l'utilisation d'une macro découpe-feuille, ce fichier se décompose en cinquante onglets, un onglet par ville, avec les données relatives aux villes dans ces même onglets.
Avec l'utilisation d'une autre macro, ces onglets sont séparés et enregistrés dans de nouveaux classeurs excel, un par ville.
 
Or ces nouveaux classeurs sont enregistrés dans un dossier sur un serveur commun, accessible aux sous directeurs de chaque ville. Mais je voudrais empêcher le directeur de Lyon de voir le fichier du directeur de Dijon par exemple. Jusqu'à présent je mettais un mot de passe, manuellement, via "outils" -> "options générales" -> "mot de passe pour la lecture".
Ce qui entrainait la demande d'un mot de passe à l'ouverture du fichier.
Y-a-t-il un moyen d'automatiser cette action grâce à une ligne à insérer dans ma deuxième macro ?
 
Merci d'avance.

Reply

Marsh Posté le 07-09-2016 à 10:08:27   

Reply

Marsh Posté le 07-09-2016 à 13:19:53    

Salut Nico,
 
J'imagine que tu utilises la méthode SaveAs pour sauvegarder tes fichiers. Si c'est le cas, tu as une option Password pour définir un mot de passe.
 
Sinon, la méthode WorkBook.Password permet également de définir un mot de passe après coup.

Reply

Marsh Posté le 07-09-2016 à 14:14:31    

Tout d'abord merci de ta réponse,

 

Alors niveau macro, pour chaque ville, j'ai fait ça :

 

        'Strasbourg
nom= "Strasbourg"
Chemin = dossier & nom

 

Workbooks.Add
ActiveWorkbooks.SaveAs Filename :=chemin, FileFormat :=51
Range ("A1" ).Select
Set dec = ActiveWorkbook

 

bdd.Activate
Sheets("resume" ).Copy After :=dec.Sheets (3)
bdd.Activate
Sheets("STRASBOURG" ).Copy After :=dec.Sheets (4)

 

dec.Activate
        Sheets(Array("Feuil1","Feuil2","Feuil3" )).Select
        ActiveWindow.SelectedSheets.Delete

 

dec.Save
dec.Close

 

Et ça continue comme ça avec les autres villes

 


J'ai essayé avec ActiveSheet.Protect ("monmotdepasse" )
Mais ça ne fonctionne pas..

 

EDIT  : j'ai rajouté le paramètre Password après FileFormat, cela semble fonctionner, merci à toi !


Message édité par nico6733 le 07-09-2016 à 14:44:12
Reply

Marsh Posté le 08-09-2016 à 08:17:20    

Super, merci pour le retour !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed