Lancer une macro complexe en cliquant sur une cellule

Bonjour,

J'ai besoin de lancer des macros en cliquant sur des cellules.

J'ai trouvé ce post https://forum.excel-pratique.com/excel/lancer-une-macro-par-clic-sur-une-cellule-t28409.html et cette solution me semble OK :

Zirak a écrit :

Bonjour (enfin re),

Voici le code pour une macro se lancant par double click (car sur un simple click tu risque de la lancer à chaque selection de cellule) , en admettant que cela soit sur la cellule A1 :

le code se met dans le code VBA de la feuille, pas dans un module (click droit sur le nom de la feuille => visualiser le code

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Application.Intersect(Target, Range("A1")) Is Nothing Then

'macro à mettre

End If

Tu peux aussi bien le faire sur une plage de cellule entière :

If Not Application.Intersect(Target, Range("B2:C4")) Is Nothing Then

'macro à mettre

End If

Par contre après ce devient pas tellement pratique pour écrire dans ces cellules ou alors il faut passer par la zone de saisie de formule en haut. Ou prévoir des cellules ou il n'y a pas besoin de saisie pour lancer les macros.

Là où ça devient encore + subtile, c'est que la macro lancée doit utiliser le contenu de la cellule sur laquelle j'ai cliqué.

Je m'explique :

  • j'ai une plage contenant des centaines voire des milliers de cellules.
  • chaque cellule contient 2 caractères alpha numériques (qui ne sont jamais "z") suivis ou non de la lettre "z" pour indiquer une compatibilité entre les 2 premiers caractères. Exemples des valeurs dans ces cellules : 22, 23z, A2, A2z, B3z, etc...
  • je voudrais que le fait de cliquer sur l'une des cellules de cette plage déclenche une macro
  • et je voudrais que cette macro utilise le contenu de la cellule sur laquelle j'ai cliqué :
>>>le premier caractère doit être copié dans le feuillet 2, B9

>>>le deuxième caractère doit être copié dans le feuillet 2, B11

>>>si la cellule contient "z", alors "compatible" doit être inscrit dans feuillet 2, B10 et feuillet 2, B12

>>>si la cellule ne contient pas "z", alors "compatible" doit être inscrit dans feuillet 2, B10 et "compatible" dans feuillet 2, B12

>>>une copie de la valeur contenue dans la cellule cliquée doit être copiée dans feuillet 1, L39.

Si possible, je préférerais avoir une cellule macro pour l'ensemble de la plage. Dans le cas contraire, si je dois cop-coll la macro pour chaque cellule puis l'éditer, je le ferai.

Ci-joint, j'ai attaché un fichier exemple.

Merci de votre aide !

Nicole

63exemple.xlsx (9.28 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

294exempl-v1.xlsm (22.42 Ko)
gmb a écrit :

Bonjour

Un essai à tester. Te convient-il ?

Bye !

Merci beaucoup gmb!

à chaque fois, je poste en me disant que ma demande est quand même super spécifique et que ça va pas être simple de trouver un magicien qui solutionne mon problème.

Et même un vendredi soir à 19h30 en plein été, voilà gmb !

Merci!

Rechercher des sujets similaires à "lancer macro complexe cliquant"