|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 28 ![]() |
Bonjour a Tous,
Je suis debutant avec VBA. Mon probleme est le suivant: J'ai des boutons lies a des macro qui permetent de filtrer verticalement et horizontalement certain ranges sur ma feuille excel. En protegeant ma feuille et meme en utilisant le code que j'ai trouve sur tout les forums Code :
Activesheet.protect UserInterfaceOnly:=True Citation:
Merci d'avance |
|
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Regarde tous les paramètres de la méthode Protect
Code :
La protection n'est pas appliquée si les changements se font par code
__________________
Cordialement. |
||
|
|
10
|
|
|
#3 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 28 ![]() |
Peux tu stp m'indiquer comment deproteger avant chaque code et ou dois-je placer le tou d'un module ou bien dans Worksheets or Workbook?
Merci |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
J'ai édité mon post, j'avais dis une bétise.
par contre Userinterfaceonly=true protège seulement les modifications opérées par l'utilisateur (et pas par macro) Poste ici l'une de tes macro qui pose problème.
__________________
Cordialement. |
|
|
10
|
|
|
#5 | ||
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 28 ![]() |
Voici le type de macro qui me pose probleme
Code :
|
||
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
C'est quoi EMBB et EMEE?
La procédure fonctionne si tu enlève la protection de la feuille?
__________________
Cordialement. |
|
|
10
|
|
|
#7 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 28 ![]() |
ce sont des references que je donne a mes cellules pour definir le range et pour que quand il y a ajout de cellules le bouton associe a cette macro fonctionne tjrs.
Quand j enleve la protection tout fonctionne |
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Bon j'ai testé ceci sans problème (j'ai ajouté la feuille à laquelle se rapporte la protection et les plages)
J'ai nommé 2 cellules EMBB et EMEE dans Feuil1 Code :
__________________
Cordialement. |
||
|
|
10
|
|
|
#9 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 28 ![]() |
Désolé mais ça ne marche pas.
J'ai essaye de joindre un fichier simplifié mais je ne vois pas apparaître. Est ce quelqu'un peut m'indiquer comment l'ajouter. |
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Compresse le et mets le en PJ
__________________
Cordialement. |
|
|
10
|
|
|
#11 | ||
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 28 ![]() |
voila la PJ (le mot de passe c'est: Secret)
J'ai essaye ce code: Code :
Quand je l'active apartir de l'editeur vba il marche et le macro fonctionnent mais si je clique sur unprotect sheet la feuille et deverouille et en verouillant a nouveau les macro ne fonctionnent plus. la meme chose se produit quand je ferme le fichier et je le re-ouvre Si quelqu'un a une idee c'est le moment de la partager. Merci d'avance |
||
|
|
00
|
|
|
#12 | ||||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
1.
Code :
Code :
Edit 3. A revoir ce code Code :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
__________________
Cordialement. |
||||
|
|
10
|
|
|
#13 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 28 ![]() |
Merci mercatog, MAIS CA NE MARCHES PAS, je pense que je vais abondonne tous les forum sur les quels j'ai poste ce sujet n'ont pas de solution.
|
|
|
00
|
|
|
#14 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
En début de chacun de tes modules (notamment celui ThisWorkbook) metsEt ce afin que tu sois obligé de définir toutes tes variables
Tu verras que tu as mis dans une ligne à partqui veut dire que tu as une variables nommée UserInterFaceOnly à qui tu affecte True. Alors que si tu fais un F1 sur Protect, tu sauras qu'elle a plusieurs paramètres (dont UserInterFaceOnly) Pour affecter une valeur à un paramètre d'une méthode, on utilise := D'où, il fallait mettre dans le code ThisWorkbook ce code (d'enregistrer le fichier, le fermer et le ré ouvrir) Code :
__________________
Cordialement. |
||
|
|
10
|
|
|
#15 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 28 ![]() |
J'ai suivi ce que tu m'as recommande et ca ne marche tjrs pas j'ai ces msgs:
|
|
|
00
|
|
|
#16 | ||||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Bon, je ne sais pas ce que tu veux faire.
J'ai testé ton fichier suivant ces étapes: 1. J'ai ôté manuellement la protection de la feuille (ou de toutes les feuilles). Toutes les feuilles sont donc déprotégées. 2. J'ai remplacé le code dans ThisWorkbook par celui-ci Code :
3. J'ai enregistré le fichier 4. J'ai fermé le fichier 5. J'ai ouvert le fichier Toutes les feuilles sont protégées par le mdp Secret suite à l'exécution du code Wokbook_Open 6. Les macros fonctionnent sans problème. PS: une remarque qui na pas de lien direct avec ton problème est d'écrire toutes tes procédures comme ceci Code :
PS3: Plus clair que ça, je ne vois pas comment expliquer!
__________________
Cordialement. |
||||
|
|
10
|
|
|
#17 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 28 ![]() |
Merci beaucoup
maintenant ca marche.Je pense que ce qyui fesait tout foire c'etait le fait que je n'avais pas deprotege toutes les feuilles. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com