Protection feuille/classeur excel 2007
Résolu/Fermé
A voir également:
- Mettre un mot de passe sur un fichier excel 2007
- Mettre un mot de passe sur un dossier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Voir mot de passe wifi android - Guide
- Trousseau mot de passe iphone - Guide
18 réponses
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
Modifié par Mike-31 le 18/11/2013 à 11:16
Modifié par Mike-31 le 18/11/2013 à 11:16
Re,
pour commencer déporotèger toutes tes feuilles
dans la Thisbokbook colle ce code
Option Explicit
Const mot1 As Variant = "titi"
Const mot2 As Variant = "toto"
Private Sub Workbook_Open()
Call protections
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call protections
End Sub
Sub protections()
Sheets("Feuil1").Protect Password:=mot1
Sheets("Feuil2").Protect Password:=mot1
Sheets("Feuil2").Protect Password:=mot1
Sheets("Feuil4").Protect Password:=mot2
Sheets("Feuil5").Protect Password:=mot2
Sheets("Feuil6").Protect Password:=mot2
Sheets("Feuil7").Protect Password:=mot2
End Sub
en début de code tu as deux constantes qui te permette de saisir le mot de passe de ton choix pour chaque groupe de feuille. Chaque mot de passe doit être entre guillemet
Const mot1 As Variant = "titi" Const mot2 As Variant = "toto"
ensuite tu trouveras la macro
Sub protections()
Sheets("Feuil1").Protect Password:=mot1
Sheets("Feuil2").Protect Password:=mot1
Sheets("Feuil2").Protect Password:=mot1
Sheets("Feuil4").Protect Password:=mot2
Sheets("Feuil5").Protect Password:=mot2
Sheets("Feuil6").Protect Password:=mot2
Sheets("Feuil7").Protect Password:=mot2
End Sub
exemple si une feuille est nommée Facture par exemple et tu veux la protéger avec le mot de passe toto tu saisis le nom de l'onglet et le nom de la constante qui est mot2
Sheets("Facture").Protect Password:=mot2
et deux macros de déclenchement des protections, une pour protéger les feuilles à l'ouverture et l'autre lorsque tu enregistres
Private Sub Workbook_Open()
Call protections
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call protections
End Sub
évite de reprotéger les feuilles manuellement trop de risque de mot de passe erroné, enregistre simplement ou ferme le sans enregistrer si tu ne veux pas enregistrer les dernières modifications et ouvre le à nouveau
ATTENTION DE NE PAS OUBLIER LES MOTS DE PASSE
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
pour commencer déporotèger toutes tes feuilles
dans la Thisbokbook colle ce code
Option Explicit
Const mot1 As Variant = "titi"
Const mot2 As Variant = "toto"
Private Sub Workbook_Open()
Call protections
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call protections
End Sub
Sub protections()
Sheets("Feuil1").Protect Password:=mot1
Sheets("Feuil2").Protect Password:=mot1
Sheets("Feuil2").Protect Password:=mot1
Sheets("Feuil4").Protect Password:=mot2
Sheets("Feuil5").Protect Password:=mot2
Sheets("Feuil6").Protect Password:=mot2
Sheets("Feuil7").Protect Password:=mot2
End Sub
en début de code tu as deux constantes qui te permette de saisir le mot de passe de ton choix pour chaque groupe de feuille. Chaque mot de passe doit être entre guillemet
Const mot1 As Variant = "titi" Const mot2 As Variant = "toto"
ensuite tu trouveras la macro
Sub protections()
Sheets("Feuil1").Protect Password:=mot1
Sheets("Feuil2").Protect Password:=mot1
Sheets("Feuil2").Protect Password:=mot1
Sheets("Feuil4").Protect Password:=mot2
Sheets("Feuil5").Protect Password:=mot2
Sheets("Feuil6").Protect Password:=mot2
Sheets("Feuil7").Protect Password:=mot2
End Sub
exemple si une feuille est nommée Facture par exemple et tu veux la protéger avec le mot de passe toto tu saisis le nom de l'onglet et le nom de la constante qui est mot2
Sheets("Facture").Protect Password:=mot2
et deux macros de déclenchement des protections, une pour protéger les feuilles à l'ouverture et l'autre lorsque tu enregistres
Private Sub Workbook_Open()
Call protections
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call protections
End Sub
évite de reprotéger les feuilles manuellement trop de risque de mot de passe erroné, enregistre simplement ou ferme le sans enregistrer si tu ne veux pas enregistrer les dernières modifications et ouvre le à nouveau
ATTENTION DE NE PAS OUBLIER LES MOTS DE PASSE
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
26 mars 2012 à 18:36
26 mars 2012 à 18:36
Re,
Alors il faut passer par un petit code VBA
clic droit sur l'onglet de ta feuille/Visualiser le code/ à gauche du remarqueras un menu projet-VBAproject tu cherches Thisworkbook sur lequel tu fais un clic droit et Code
colle ce petit code qui protégera chaque feuille dès que tu la quittera. Le mot de passe est titi à changer évidemment
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
ActiveSheet.Protect Password:="titi"
End Sub
ce code peut être activer également à l'ouverture ou à la fermeture du fichier, toutes les x minutes, après un changement, un délai d'inactivité, un bouton de commande etc ...
Alors il faut passer par un petit code VBA
clic droit sur l'onglet de ta feuille/Visualiser le code/ à gauche du remarqueras un menu projet-VBAproject tu cherches Thisworkbook sur lequel tu fais un clic droit et Code
colle ce petit code qui protégera chaque feuille dès que tu la quittera. Le mot de passe est titi à changer évidemment
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
ActiveSheet.Protect Password:="titi"
End Sub
ce code peut être activer également à l'ouverture ou à la fermeture du fichier, toutes les x minutes, après un changement, un délai d'inactivité, un bouton de commande etc ...
Ok merci!
J'arrive à faire tout ce que tu m'as dit mais après? comment je l'enregistre ce code?
quand je ferme toute les fenetre de visual basic y compris la fenetre où j'ai rentré le code, que je vais sur excel, que j'enregistre mon fichier excel, on me dit:
"La fonctionnalité "projet VB" ne peut pas etre enregistrées dans des classeurs sans macro. Pour enregistrer un fichier avec cette fonctionnalité, cliquez sur Non, puis sélectrionnez un type de fichier prenant en charge les macros dans la liste Type de fichier. Pour continuer en tant que classeur sans macro, cliquez sur oui."
J'ai essayé oui (car j'ai pas de macro dans mon classeur) et j'ai aussi essayé non. mais ca ne fonctionne pas.
C'est à dire: j'ai fait ce que tu m'as dit de faire alors que mes protections étaient activées, ensuite j'ai ôté la protection pr modifier un truc dans le fichier, j'ai enregistrer, j'ai fermé, j'ai reouvert et j'ai constaté que ça n'avait pas fonctionné vu que le fichier n'était plus protégé...
J'arrive à faire tout ce que tu m'as dit mais après? comment je l'enregistre ce code?
quand je ferme toute les fenetre de visual basic y compris la fenetre où j'ai rentré le code, que je vais sur excel, que j'enregistre mon fichier excel, on me dit:
"La fonctionnalité "projet VB" ne peut pas etre enregistrées dans des classeurs sans macro. Pour enregistrer un fichier avec cette fonctionnalité, cliquez sur Non, puis sélectrionnez un type de fichier prenant en charge les macros dans la liste Type de fichier. Pour continuer en tant que classeur sans macro, cliquez sur oui."
J'ai essayé oui (car j'ai pas de macro dans mon classeur) et j'ai aussi essayé non. mais ca ne fonctionne pas.
C'est à dire: j'ai fait ce que tu m'as dit de faire alors que mes protections étaient activées, ensuite j'ai ôté la protection pr modifier un truc dans le fichier, j'ai enregistrer, j'ai fermé, j'ai reouvert et j'ai constaté que ça n'avait pas fonctionné vu que le fichier n'était plus protégé...
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
26 mars 2012 à 13:23
26 mars 2012 à 13:23
Salut,
Si tu mets un mot de passe à l'ouverture et éventuellement un différent à la modification cela offre deux protections.
le fait de le déprotéger pour modifier le contenu de ta feuille ne modifie en rien cette protection, elle sera de nouveau active après avoir fermé le classeur.
Mais si tu le souhaites, il est possible d'écrire un code en VBA qui reprotégera la feuille ou le classeur s'il a été déprotégé après un délai de x minutes
Si tu mets un mot de passe à l'ouverture et éventuellement un différent à la modification cela offre deux protections.
le fait de le déprotéger pour modifier le contenu de ta feuille ne modifie en rien cette protection, elle sera de nouveau active après avoir fermé le classeur.
Mais si tu le souhaites, il est possible d'écrire un code en VBA qui reprotégera la feuille ou le classeur s'il a été déprotégé après un délai de x minutes
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
27 mars 2012 à 09:55
27 mars 2012 à 09:55
Re,
Tu travailles certainement sous Excel 2007 ou 2010, alors soit tu enregistres ton fichier sous l'ancienne extension .XLS pour cela lorsque tu fais Enregistrer ou Enregistrer sous en bas de ta fenêtre, dans Type sélectionne Classeur Excel 97-2003(*.xls) ce qui permettra également de lire ton fichier sous toutes les versions Excel depuis 97 alors que les fichiers enregistrés avec 2007 ou 2010 seront ouvert que par ces version ou il faudra télécharger un convertisseur.
ou tu enregistres ton fichier avec l'extension XLSM de la même façon dans Type sélectionne Classeur Excel prenant en charge les macros (*.xlsm)
Il est possible qu'à chaque ouverture le système te demande d'activer les macros dans ce cas tu reviens sur la discussion et je te dirais comment procéder pour éviter cela. De même que si le code macro ne fonctionne pas, c'est que le niveau de sécurité est trop élevé et te dirai également comment procéder.
Tu me donneras ta version Excel
Tu travailles certainement sous Excel 2007 ou 2010, alors soit tu enregistres ton fichier sous l'ancienne extension .XLS pour cela lorsque tu fais Enregistrer ou Enregistrer sous en bas de ta fenêtre, dans Type sélectionne Classeur Excel 97-2003(*.xls) ce qui permettra également de lire ton fichier sous toutes les versions Excel depuis 97 alors que les fichiers enregistrés avec 2007 ou 2010 seront ouvert que par ces version ou il faudra télécharger un convertisseur.
ou tu enregistres ton fichier avec l'extension XLSM de la même façon dans Type sélectionne Classeur Excel prenant en charge les macros (*.xlsm)
Il est possible qu'à chaque ouverture le système te demande d'activer les macros dans ce cas tu reviens sur la discussion et je te dirais comment procéder pour éviter cela. De même que si le code macro ne fonctionne pas, c'est que le niveau de sécurité est trop élevé et te dirai également comment procéder.
Tu me donneras ta version Excel
C'est excel 2007 je l'ai mis dans le titre.
C'est pas nécessaire qu'il soit lisible avec les anciennes versions d'excel donc j'ai essayé ta deuxieme proposition: enregistrer sous fichier excel prenant en charge les macros.
J'ai ensuite essayé de nouveau d'ôter la protection de la feuille concerné, de modifier un truc, d'enregistrer, de fermé, de réouvrir et la protection était toujours inactive :S
Après avoir rentrer le code que tu m'as dit, j'ai fermé visual basic.. Je fais quelque chose d'incorrect?
C'est pas nécessaire qu'il soit lisible avec les anciennes versions d'excel donc j'ai essayé ta deuxieme proposition: enregistrer sous fichier excel prenant en charge les macros.
J'ai ensuite essayé de nouveau d'ôter la protection de la feuille concerné, de modifier un truc, d'enregistrer, de fermé, de réouvrir et la protection était toujours inactive :S
Après avoir rentrer le code que tu m'as dit, j'ai fermé visual basic.. Je fais quelque chose d'incorrect?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
27 mars 2012 à 11:31
27 mars 2012 à 11:31
Re,
Effectivement j'avais zappé ta version excuse moi.
le code que je t'ai écrit protégeait la feuille lors d'un changement de feuille vers une autre et t'ai également précisé que ce code pouvait être activé à l'ouverture ou à la fermeture du fichier, toutes les x minutes, après un changement, un délai d'inactivité, un bouton de commande etc ...
regarde le fichier joint, le code s'active à l'ouverture du fichier et lorsque tu quitte la feuille
https://www.cjoint.com/?BCBlES9nExy
Effectivement j'avais zappé ta version excuse moi.
le code que je t'ai écrit protégeait la feuille lors d'un changement de feuille vers une autre et t'ai également précisé que ce code pouvait être activé à l'ouverture ou à la fermeture du fichier, toutes les x minutes, après un changement, un délai d'inactivité, un bouton de commande etc ...
regarde le fichier joint, le code s'active à l'ouverture du fichier et lorsque tu quitte la feuille
https://www.cjoint.com/?BCBlES9nExy
Ok merci, je commence à comprendre le système car j'ai vu que ça fonctionnait quand j'enlève la protection, que je vais sur une autre feuille et que je reviens sur la feuille, la protection s'est en effet remise toute seule.
Par contre ce qui m'intéresse c'est juste qu'à chaque ouverture du fichier, la protection soit active même si on l'a désactivé plus tôt pour faire une modif (et oublier de la réactiver).
J'ai donc pris seulement la premiere partie de ton code pour tester et ça ne fonctionne pas. J'enleve la protection pr faire une modif, j'enregistre, je ferme, j'ouvre, et la protection ne s'est pas remise toute seule.
Il faut bien que je créais une protection (malgré ce code qu'on met dans visual basic) avec le même mot de passe non?
Par contre ce qui m'intéresse c'est juste qu'à chaque ouverture du fichier, la protection soit active même si on l'a désactivé plus tôt pour faire une modif (et oublier de la réactiver).
J'ai donc pris seulement la premiere partie de ton code pour tester et ça ne fonctionne pas. J'enleve la protection pr faire une modif, j'enregistre, je ferme, j'ouvre, et la protection ne s'est pas remise toute seule.
Il faut bien que je créais une protection (malgré ce code qu'on met dans visual basic) avec le même mot de passe non?
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
27 mars 2012 à 12:40
27 mars 2012 à 12:40
Re,
Pour que la protection soit active à chaque ouverture du fichier c'est ce code
Private Sub Workbook_Open()
ActiveSheet.Protect Password:="titi"
End Sub
ou tu peux également réactiver la protection à la fermeture du fichier
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveSheet.Protect Password:="titi"
End Sub
Pour que la protection soit active à chaque ouverture du fichier c'est ce code
Private Sub Workbook_Open()
ActiveSheet.Protect Password:="titi"
End Sub
ou tu peux également réactiver la protection à la fermeture du fichier
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveSheet.Protect Password:="titi"
End Sub
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
27 mars 2012 à 14:14
27 mars 2012 à 14:14
Re,
Ce n'est pas grave, comme je te l'ai dit dans un post, le niveau de sécurité doit être élevé, dans la barre d'onglet, as tu l'onglet Développeur au dessus du ruban activé il est juste après Révision et Affichage
Ce n'est pas grave, comme je te l'ai dit dans un post, le niveau de sécurité doit être élevé, dans la barre d'onglet, as tu l'onglet Développeur au dessus du ruban activé il est juste après Révision et Affichage
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
27 mars 2012 à 19:45
27 mars 2012 à 19:45
RE,
Commence par ouvrir Excel
En haut à gauche clic sur le bouton Microsoft
dans la fenêtre en bas à droite clic sur Options Excel
clic sur la rubrique Standard et coche Afficher l'onglet Développeur dans le ruban
ferme la boite de dialogue
clic sur l'onglet Développeur au dessus du ruban
dans le module Code clic sur sécurité des macroscoche Activer toutes les macros (non recommandé; etc .......)
teste mon code et reviens dans la discussion je t'expliquerai comment relever le niveau de sécurité des macros
Commence par ouvrir Excel
En haut à gauche clic sur le bouton Microsoft
dans la fenêtre en bas à droite clic sur Options Excel
clic sur la rubrique Standard et coche Afficher l'onglet Développeur dans le ruban
ferme la boite de dialogue
clic sur l'onglet Développeur au dessus du ruban
dans le module Code clic sur sécurité des macroscoche Activer toutes les macros (non recommandé; etc .......)
teste mon code et reviens dans la discussion je t'expliquerai comment relever le niveau de sécurité des macros
Ah oui ça marche mieux là!
Par contre, après plusieurs tests, j'ai remarqué un petit défaut:
En mettant le code seulement dans la fenetre "ThisWorkBook" dans Visual Basic, ça me protège bien les 3 feuilles de mon classeur mais quand j'ôte la protection de chacune des feuille pour modifier des trucs, j'enregistre, je ferme, je reouvre et je constate que la protection s'est réactivé seulement pour une seule des feuille (celle qui était à l'écran quand j'ai enregistré puis fermé).
N'y a t'il pas un remède? :)
Mais en tout cas déjà merci, ça fait plaisir de voir que ça fonctionne un peu! :D
Par contre, après plusieurs tests, j'ai remarqué un petit défaut:
En mettant le code seulement dans la fenetre "ThisWorkBook" dans Visual Basic, ça me protège bien les 3 feuilles de mon classeur mais quand j'ôte la protection de chacune des feuille pour modifier des trucs, j'enregistre, je ferme, je reouvre et je constate que la protection s'est réactivé seulement pour une seule des feuille (celle qui était à l'écran quand j'ai enregistré puis fermé).
N'y a t'il pas un remède? :)
Mais en tout cas déjà merci, ça fait plaisir de voir que ça fonctionne un peu! :D
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
28 mars 2012 à 11:33
28 mars 2012 à 11:33
Re,
remplace le code dans la Thiswokbook par celui ci et à chaque ouverture toutes les feuilles seront protégées
Private Sub Workbook_Open()
For Each Sh In Sheets
Sh.Protect Password:="titi"
Next Sh
End Sub
lorsque ton code sera bon n'oublie pas que nous devrons relever la protection d'Excel en complétant le code
remplace le code dans la Thiswokbook par celui ci et à chaque ouverture toutes les feuilles seront protégées
Private Sub Workbook_Open()
For Each Sh In Sheets
Sh.Protect Password:="titi"
Next Sh
End Sub
lorsque ton code sera bon n'oublie pas que nous devrons relever la protection d'Excel en complétant le code
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
28 mars 2012 à 13:40
28 mars 2012 à 13:40
Re,
oui il faudra enregistrer dans chaque fichier concerné le code dans la Thiswokbook de chaque fichier (bien que l'on pourrait l'enregistrer dans un dossier privé de macro)
ce que tu veux faire ne peut être fait que par macro et le code que je t'ai écrit en est une.
Les virus sont de petit programme malveillant qui peuvent être caché dans des codes de programmation, pour des raisons de sécurité il est recommandé de travailler sous protection élevé ce qui bloque les codes comme les macros.
Il est possible de signer numériquement un code de sorte que Windows le reconnaisse comme sur et l'active automatiquement.
Pour cela j'ai écris une astuce que l'on peut retrouver dans les astuces du forum ICI
Création de la signature
* 2 Sous environnement XP, VISTA ou Windows7 pour Microsoft Office 2003 et 2007 :
o Bouton Démarrer.
o Dans Tous les programmes.
o Cliquer sur Microsoft Office.
o Outils Microsoft Office.
o Puis sur Certificat numérique pour les projets VBA.
rétablir la protection élevé d'Excel
* Si l'onglet Développeur n'est pas activé, cliquer sur le bouton Microsoft Office
* Puis sur Options Excel.
* Cliquer sur Standard, puis cocher Afficher l'onglet Développeur dans le ruban.
* Ouvrir le fichier contenant le code macro à signer
* Dans l'onglet Développeur, Visual Basic ou (Alt+F11)
* Dans la barre des menus du Visual Basic : Outils > Signature Électronique > cliquer sur choisir > puis sur le nom de sa signature et OK.
* Revenir sur la feuille de calcul
* Onglet Développeur,Sécurité des macros
* Cocher : Désactiver toute les macros à l'exception des macros signées numériquement et OK
* Enregistrer
* Fermer le fichier et l'application
Lorsque tes attentes seront satisfaites confirme le moi que je mette le statut de la discussion en résolu
oui il faudra enregistrer dans chaque fichier concerné le code dans la Thiswokbook de chaque fichier (bien que l'on pourrait l'enregistrer dans un dossier privé de macro)
ce que tu veux faire ne peut être fait que par macro et le code que je t'ai écrit en est une.
Les virus sont de petit programme malveillant qui peuvent être caché dans des codes de programmation, pour des raisons de sécurité il est recommandé de travailler sous protection élevé ce qui bloque les codes comme les macros.
Il est possible de signer numériquement un code de sorte que Windows le reconnaisse comme sur et l'active automatiquement.
Pour cela j'ai écris une astuce que l'on peut retrouver dans les astuces du forum ICI
Création de la signature
* 2 Sous environnement XP, VISTA ou Windows7 pour Microsoft Office 2003 et 2007 :
o Bouton Démarrer.
o Dans Tous les programmes.
o Cliquer sur Microsoft Office.
o Outils Microsoft Office.
o Puis sur Certificat numérique pour les projets VBA.
rétablir la protection élevé d'Excel
* Si l'onglet Développeur n'est pas activé, cliquer sur le bouton Microsoft Office
* Puis sur Options Excel.
* Cliquer sur Standard, puis cocher Afficher l'onglet Développeur dans le ruban.
* Ouvrir le fichier contenant le code macro à signer
* Dans l'onglet Développeur, Visual Basic ou (Alt+F11)
* Dans la barre des menus du Visual Basic : Outils > Signature Électronique > cliquer sur choisir > puis sur le nom de sa signature et OK.
* Revenir sur la feuille de calcul
* Onglet Développeur,Sécurité des macros
* Cocher : Désactiver toute les macros à l'exception des macros signées numériquement et OK
* Enregistrer
* Fermer le fichier et l'application
Lorsque tes attentes seront satisfaites confirme le moi que je mette le statut de la discussion en résolu
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
28 mars 2012 à 14:43
28 mars 2012 à 14:43
Re,
Tu peux le laisser comme cela sans problème, mais tu n'as pas de barrière de protection et les virus ne sont pas que sur internet, il est possible de véhiculer des virus avec toute sorte de support magnétique comme un clé USB.
Maintenant tu fais comme tu veux !
Tu peux le laisser comme cela sans problème, mais tu n'as pas de barrière de protection et les virus ne sont pas que sur internet, il est possible de véhiculer des virus avec toute sorte de support magnétique comme un clé USB.
Maintenant tu fais comme tu veux !
Ok mais vu que c'est un fichier qui va rester dans une entreprise, que tout est bien sécurisé et que les clef USB sont interdite ça devrait aller mais merci c'est sympa! ;)
Par contre, est ce que c'est possible de faire le même genre de chose mais pour protéger le classeur cette fois? (pour empêcher la suppression d'une feuille par exemple)
Par contre, est ce que c'est possible de faire le même genre de chose mais pour protéger le classeur cette fois? (pour empêcher la suppression d'une feuille par exemple)
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
28 mars 2012 à 23:32
28 mars 2012 à 23:32
Re,
Oui bien sur avec Excel tout est possible ou presque,
dans la Thiswokbook colle ce code à la place de l'autre qui protége les feuille et la structure du classeur
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In Sheets
Sh.Protect Password:="titi"
Next Sh
ActiveWorkbook.Protect Password:="titi", Structure:=True, Windows:=False
End Sub
par contre la déprotection d'une feuille ne déprotégera pas la structure du classeur, pour modifier le classeur il faudra remplacer la dernière ligne par
ActiveWorkbook.Unprotect Password:="titi"
ou créer une macro dans un module
Oui bien sur avec Excel tout est possible ou presque,
dans la Thiswokbook colle ce code à la place de l'autre qui protége les feuille et la structure du classeur
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In Sheets
Sh.Protect Password:="titi"
Next Sh
ActiveWorkbook.Protect Password:="titi", Structure:=True, Windows:=False
End Sub
par contre la déprotection d'une feuille ne déprotégera pas la structure du classeur, pour modifier le classeur il faudra remplacer la dernière ligne par
ActiveWorkbook.Unprotect Password:="titi"
ou créer une macro dans un module
C'est parfait, c'est exactement ce que je voulais merci beaucoup!!
Encore une ptite question: Je voulais que ce fichier excel puisse être utilisé par plusieurs personne en même temps sur un disque réseau (par les personnes qui peuvent le modifier et d'autre non).
Je pense alors que c'est la fonction "partage" d'excel?
Donc je l'ai activé mais j'ai constaté que dans ce cas on ne peut pas ensuite enlever les protection... C'est pas compatible la protection et le partage?!
Merci ;)
Encore une ptite question: Je voulais que ce fichier excel puisse être utilisé par plusieurs personne en même temps sur un disque réseau (par les personnes qui peuvent le modifier et d'autre non).
Je pense alors que c'est la fonction "partage" d'excel?
Donc je l'ai activé mais j'ai constaté que dans ce cas on ne peut pas ensuite enlever les protection... C'est pas compatible la protection et le partage?!
Merci ;)
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
29 mars 2012 à 11:57
29 mars 2012 à 11:57
Re,
La tu en demande beaucoup, je ne suis pas en réseau il m'est difficile d'écrire un code et le tester, je ne pense pas que le partage soit possible avec ce genre de protection et cela me parait illogique
La tu en demande beaucoup, je ne suis pas en réseau il m'est difficile d'écrire un code et le tester, je ne pense pas que le partage soit possible avec ce genre de protection et cela me parait illogique
roms2902
Messages postés
3
Date d'inscription
jeudi 14 novembre 2013
Statut
Membre
Dernière intervention
18 novembre 2013
14 nov. 2013 à 19:25
14 nov. 2013 à 19:25
Bonjour,
Je souhaite faire exactement la même chose (j'arrive plus ou moins avec les codes écrit ci dessus).
A la seule différence que je souhaiterais mettre deux mots de passe différents sur les feuilles.
Mon document comporte 7 feuilles. 1 mot de passe pour 3 d'entre elles. ET 1 mot de passe pour les 4 autres.
Merci d'avance.
Je souhaite faire exactement la même chose (j'arrive plus ou moins avec les codes écrit ci dessus).
A la seule différence que je souhaiterais mettre deux mots de passe différents sur les feuilles.
Mon document comporte 7 feuilles. 1 mot de passe pour 3 d'entre elles. ET 1 mot de passe pour les 4 autres.
Merci d'avance.
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
14 nov. 2013 à 22:10
14 nov. 2013 à 22:10
Re,
le plus simple si j'ai bien compris ton problème est d'enregistrer deux constantes en début de code par lesquelles tu détermines tes mots de passe exemple titi et toto
ensuite tu affectes un mot à chaque feuille
ce code est à placer dans la Thisworkbook
Option Explicit
Const mot1 As Variant = "titi"
Const mot2 As Variant = "toto"
Private Sub Workbook_Open()
Sheets("Feuil2").Protect Password:=mot1
Sheets("Feuil1").Protect Password:=mot1
Sheets("Feuil4").Protect Password:=mot2
End Sub
le plus simple si j'ai bien compris ton problème est d'enregistrer deux constantes en début de code par lesquelles tu détermines tes mots de passe exemple titi et toto
ensuite tu affectes un mot à chaque feuille
ce code est à placer dans la Thisworkbook
Option Explicit
Const mot1 As Variant = "titi"
Const mot2 As Variant = "toto"
Private Sub Workbook_Open()
Sheets("Feuil2").Protect Password:=mot1
Sheets("Feuil1").Protect Password:=mot1
Sheets("Feuil4").Protect Password:=mot2
End Sub
roms2902
Messages postés
3
Date d'inscription
jeudi 14 novembre 2013
Statut
Membre
Dernière intervention
18 novembre 2013
15 nov. 2013 à 17:28
15 nov. 2013 à 17:28
Bonjour,
Une fois rentré dans le visual basic
Onglet This workbook (dans le listing à droite) + Dans la liste déroulante : Workbook
Mise en place du code > enregistrement > Fermeture > Réouverture
-->
A l'ouverture du fichier : Erreur d'exécution '9'
L'indice n'appartient pas à la sélection
Merci en tout cas pour ta rapidité.
Une fois rentré dans le visual basic
Onglet This workbook (dans le listing à droite) + Dans la liste déroulante : Workbook
Mise en place du code > enregistrement > Fermeture > Réouverture
-->
A l'ouverture du fichier : Erreur d'exécution '9'
L'indice n'appartient pas à la sélection
Merci en tout cas pour ta rapidité.
18 nov. 2013 à 15:01
Niquel, Tout fonctionne.
J'allais te demander de me rajouter aussi la re-protection automatique des feuilles quand on passe de feuille en feuille ... mais avec la remise des mots de passe après enregistrement (et aussi dès la fermeture du fichier) c'est encore plus simple et même moins fastidieux pour la personne qui va modifier le fichier à longueur de temps (pas obliger de remettre le mot de passe à chaque changement de feuille)
Je ne regrette pas d'être tomber par hasard sur ce post (sachant que c'est un problème que je traîne depuis des mois)
En tout cas un GRAND MERCI !