Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Worksheet_change sur plusieurs cellules

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 !

nounbxl76

XLDnaute Occasionnel
Bonsoir,

Je vous sollicite car je ne comprends pas pourquoi ma macro ne se déclenche pas via une procédure évènementielle "worksheet_change". En gros, je cherche à lancer ma macro si A2, B4 ou B5 est changée.. voici le code que j'utilise :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Target.Address
        Case Is = "$A$2"
            Call ma macro
        Case Is = "$B$4"
            Call ma macro
        Case Is = "$B$5"
            Call ma macro
        Case Else
    End Select
End Sub

Quelqu'un pourrait-il venir en aide à mon cerveau SVP? Je pense que c'est dû à mon parcours de débutant...

Merci par avance.

Cordialement,
 
Re : Worksheet_change sur plusieurs cellules

Bonsoir.
Pourquoi avez vous remplacé le nom de votre macro en les deux mots "ma macro" ?
En fin peu importe. Si son vrai nom est bien celui d'une Sub dans un module ordinaire, rien de ce que vous présentez ne l'explique, çà devrait fonctionner.
Pistes: Niveau de sécurité trop élevé, Application.EnableEvents resté accidentellement à False.
À +
 
Re : Worksheet_change sur plusieurs cellules

Bonjour nounbxl76, Dranreb,

En dehors des pistes évoquées par Dranreb, je propose de simplifier le code de cette procédure :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("A2, B4:B5"), Target) Is Nothing Then Call ma macro
End Sub

Bonne journée.

Cordialement.
 
Re : Worksheet_change sur plusieurs cellules

Bonjour Dranreb, bonjour Papou-net, le forum,

Merci pour votre retour... Je viens de m'apercevoir que j'avais déjà ce type de procédure dans mon classeur que cette autre procédure ne fonctionne pas non plus... comment puis je remédier à cela SVP?

PS: le code papou-net n'a pu être testé en raison du même problème...

Bonne journée
 
Re : Worksheet_change sur plusieurs cellules

Je viens de tester et malheureusement cela ne solutionne pas la situation... j'ai regardé le niveau de sécurité au cas où mais je ne trouve pas de chose significative sur ce point 😕
 
Re : Worksheet_change sur plusieurs cellules

Aïe ! ca risque d'être compliqué car il s'agit d'un classeur qui compile de très nombreuses données confidentielles sur 3 ans et il me sera impossible de le retravailler pour le partager... je crois que je vais passer par une autre procédure... merci pour votre support.
Bonne journée.
 
Re : Worksheet_change sur plusieurs cellules

Bonjour

"Je viens de m'apercevoir que j'avais déjà ce type de procédure dans mon classeur que cette autre procédure ne fonctionne pas non plus..."
que vouslez vous dire ? Vous avez sur la même feuille deux macros worksheet_change ? Cela ne peut pas fonctionner, il n'y a qu'un seul événement worksheet_change par feuille mais rien n'empêche d'y mettre plusieurs macros déclenchées par le changement sur des cellules ou plages différentes.
N'avez vous pas un enable_events = false quelque part dans une macro de votre classeur comme le suggère Dranreb ? faites une recherche sur ce mot dans vos macros.
 
Re : Worksheet_change sur plusieurs cellules

J'ai une procédure worksheet change sur une autre feuille qui déclenche une autre macro mais cette procédure ne fonctionne plus non plus... Je n'ai pas de ligne application enableevents=false...
Ça me laisse perplexe...

Merci en tout cas!
 
Re : Worksheet_change sur plusieurs cellules

Le mode de calcul est-il bien sur auto ?
Une façon de tester :
sur une copie du classeur (évidemment !)
tu vires toutes tes macros, sauf une macro worksheet_change sur une feuille avec une simple msgbox pour voir si ça s'active. Si oui, tu reprends ta mayo ratée en réincorporant petit à petit les autres macros jusqu'à ce que ça coince.
Si non, tu vires petit à petit tout ce qui est dans le classeur jusqu'à ce que ça marche. Si ça ne marche toujours pas alors qu'il n'y a plus rien dans le classeur, tu en conclus que ce classeur est vérolé et tu réincorpores tout dans un nouveau classeur. (copier coller, surtout pas faire glisser les feuilles d'un classeur à l'autre avec l'option de copier une feuille entière d'un classeur dans l'autre)
 
Re : Worksheet_change sur plusieurs cellules

salut
Bonsoir,

Je vous sollicite car je ne comprends pas pourquoi ma macro ne se déclenche pas via une procédure évènementielle "worksheet_change". ...

Copie la macro de Papou-net (plus courte).

Mais, la macro est-elle écrite au bon endroit ? Elle n'agira qu'au changement de l'une des trois cellules de la feuille où elle est écrite.

Pour tester cela ( mais à connaître pour mieux comprendre le déroulement des actions même dans d'autres situations) :
clic dans la marge à hauteur de la deuxième ligne pour mettre un point d'arrêt (ou si la ligne est sélectionnée sur F9). La ligne devient marron (voir l'image).
Regarde la pièce jointe 869367
Change le contenu de l'une de ces 3 cellules de la bonne feuille, l'éditeur s'ouvre avec cette ligne en jaune
sauf si les évènements ont été inhibés et là, Dranreb t'a donné le remède.

Si l'éditeur s'est ouvert, clique sur F8
Si la macro est au mauvais endroit, c'est la ligne suivante qui sera éditée (en jaune) et l'évènement se terminera ici donc sans ne rien faire ! Déplace alors la macro dans le Module de la feuille de travail.
Si la procédure est au bon endroit la macro sera appelée (Call) et de F8 en F8 tu pourras effectuer les instructions en voyant se qui se passe.
 

Pièces jointes

  • F9.jpg
    24.1 KB · Affichages: 85
Re : Worksheet_change sur plusieurs cellules

Bonsoir,

Merci à tous pour votre support.

Dranreb, qu'entendez-vous par "se compile-t-il bien?" ? La macro associée à la procédure worksheet change que j'essaie d'appliquer est exclusive à cette feuille.

Misagne, mon fichier est énorme alors je vais prendre le temps de faire vos manips. Ceci étant, le test de la msgbox fonctionne...
Sinon, qu'entendez-vous par "vérolé"?


Si..., J'ai testé vos manips et voici le bilan... RAS avec le test de la msgbox. J'ai mis la macro dans le module de la feuille et de nombreuses lignes de la macro n'ont pas été mises en surbrillance...

Pour info, je suis sur Excel 2007 sur mon perso et sur Excel 2003 au boulot où RAS en ce qui concerne ma 2e procédure worksheet change...

Merci encore. Bonne soirée.
 
Re : Worksheet_change sur plusieurs cellules

Dranreb, qu'entendez-vous par "se compile-t-il bien?" ? La macro associée à la procédure worksheet change que j'essaie d'appliquer est exclusive à cette feuille.

Dans l'éditeur VBA, menu debogage, compiler VBA project. Quand il y a des erreurs excel le signale.

Misagne, mon fichier est énorme alors je vais prendre le temps de faire vos manips. Ceci étant, le test de la msgbox fonctionne...
Sinon, qu'entendez-vous par "vérolé"?
Si le test de la msgbox fonctionne c'est donc que les événements ne sont pas inactivés. Voilà un point d'acquis.

Vérolé : il arrive parfois qu'un classeur se corrompe. Par exemple parce qu'il y a eu une microcoupure de courant lors de l'enregistrement. Dans ces cas là, le plus efficace c'est de reconstruire le classeur.

En regardant ta macro initiale : ta macro s'appelle ma macro ? Avec un espace entre ma et macro ? Remplace ça par ma_macro...
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
483
Réponses
15
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…