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 !
J'ai besoin d'une aide suite à une erreur de macro sur Excel 07
Sur une feuille excel, j'ai crée une macro qui consiste à cacher certaine ligne et colonne quand on appuie dessus. Elle fonctionnait très bien.
Ensuite, j'ai Voulu proteger certaine cellule de ma feuille excel où j'avais des formules que je ne voulais pas qu'on ne touche. Le verrouillage fonctionne par contre les macros ne marche plus et j'ai le signal d'erreur suivant:
Erreur d'execution "1004"
Impossible de définir la propriété Hidden de la classe Range
Je ne comprends pas cette erreur. J'aimerais faire cohabiter une macro et le verrouillage de cellule.
Essaie avec, arpès avoir supprimé tous les ActiveWindow.ScrollRow inutiles :
ActiveSheet.Unprotect ' et ("ton mot de passe s'il y en a un")
Rows("3:396").Select
Selection.EntireRow.Hidden = False
Range("26:26,26:42").Select
Range("D26").Activate
Range("26:26,26:42,68:84").Select
Range("D68").Activate
Range("26:26,26:42,68:84,95:95").Select
Range("A95").Activate
Selection.EntireRow.Hidden = True
Range("A3").Select
ActiveSheet.Protect
End Sub
Par contre, j'ai du mal à comprendre tes diverses selections.
Pour régler le problème de protection, on peut effectivement envisager comme ça :
Code:
ActiveSheet.Unprotect [COLOR=GREEN]' et ("ton mot de passe s'il y en a un")[/COLOR]
Rows("3:396").EntireRow.Hidden = [COLOR=NAVY]False[/COLOR]
Range("26:42,68:84,95:95").EntireRow.Hidden = [COLOR=NAVY]True[/COLOR]
ActiveSheet.Protect
Mais il y a d'autres solutions :
Protection qui autorise de masquer ou afficher des lignes Comme tu possèdes visiblement une version Excel supérieure à XL2000, tu as la possibilité de protéger ta feuille en laissant certaines options possibles :
Pour verrouiller la feuille tout en laissant la possibilité de masquer / afficher les lignes, il suffit manuellement de cocher l'option "Format de ligne" dans la boîte de dialogue de protection (celle qui te demande l'éventuel mot de passe).
Et si tu veux le faire par VBA, ça donnera quelque chose comme ça :
Comme ça, plus besoin de déprotéger ta feuille pour laisser ton traitement VBA agir sur les lignes.
Argument UserInterfaceOnly Il est normalement tout à fait possible de verrouiller des cellules pour empêcher toute modification de l'utilisateur tout en permettant aux macros VBA d'agir sur ces dernières, grâce au paramètre UserInterfaceOnly = True de la méthode Protect.
Pour ce faire, il faut placer la procédure suivante dans l'objet ThisWorkbook :
Cette procédure étant lancée à l'ouverture du Classeur, et si tu ne redéfinies pas la protection de la feuille autre part dans ton code, tu devrais normalement pouvoir te passer des UnProtect / Protect au début et à la fin des divers traitement VBA...
Bonsoir mjulien, Jean-Marcel, jeanpierre,MDF,
Didier à la lecture de ta réponse ci -dessous, je me rend compte que ce que je t'ai dit hier n'est pas exagéré du tout!!! Même si ça fait trés plaisir à lire, c'est tout de même vrai
trés amicalement
papou
bonjour,
Je voudrais d'abord remercier tout ceux qui m'ont aidé à corriger mon erreur pour ma macro
Je suis désolé mais j'ai de nouveau un problème suite à la correction apporté au code.
Lorsque je paramètre le verrouillage de ma feuille, je coche les cases permettant de modifier le format des cellules ou de colonne ou ligne.
Après avoir activé ma macro, je ne peux plus modifier le format alors qu'avant de l'activer cela était possible.
Bonjour M julien le forum,
cela me parrait normal, tu as utilisé la macro de MDF? si oui à la fin tu protège la feuille donc tu ne peux plus la modifier, si tu veux la modifier tu dévérouille ta feuille et tu modifies
enfin si je ne suis pas hors sujet
a+
Papou
Lorsque je paramètre le verrouillage de ma feuille, je coche les cases permettant de modifier le format des cellules ou de colonne ou ligne.
Après avoir activé ma macro, je ne peux plus modifier le format alors qu'avant de l'activer cela était possible.
Si tu protèges manuellement ta feuille en cochant les options de format de cellules, colonnes ou lignes alors il te faut supprimer toute notion de protection ou déprotection de feuille dans ta macro, tu n'en as plus besoin.
Ton code réduit comme ci-dessous devrait amplement suffire :
Bonsoir mjulien, Jean-Marcel, jeanpierre, MDF, le Forum
Je suis content j'étais pas hors sujet, a force de cotoyer des trés bons on devient moins mauvais.
Bonne soirée, à tous
Papou
- 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