Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment déclencher une macro à partir d'un élément d'une zone de liste?

11 réponses
Avatar
gandi
Bonjour,
j'ai crée une zone de liste, liée à une cellule ("c1") . Cette zone de
liste contient les jours de la semaine. Quand j'active "lundi",
j'obtiens le chiffre 1 en c1; pour "mardi le chiffre 2 et ainsi de suite
jusqu'à dimanche .

J'aimerais qu'à l'affichage du chiffre 1 en "c1", dès que je clique sur
"lundi", se déclenche la macro 1 que j'ai mise dans le module 1 de la
feuille 1.

En feuille1 j'ai mis l' instruction suivante pour provoquer un
déclenchement automatique dès l'apparition des chiffre en "c1":
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = Range("c1").Address And Target.Value = "1" Then Macro1
End Sub

Mais ça ne fonctionne pas!

Si par contre je frappe le chiffre 1 en "c1" et le valide depuis le
clavier, ma macro fonctionne. Je ne comprends pas pourquoi. Quelqu'un
pourrait-il m'expliquer et me trouver un solution à mon problème.

Merci

1 réponse

1 2
Avatar
gandi
Ca y est ça marche!
Private Sub Worksheet_Calculate()
If [A1]=1 Then Macro1
If [A2]=2 Then Macro2
etc....

End Sub


AV a écrit:
Pour que ça fonctionne, je te conseillerais ceci :

Ta liste de validation étant en C1 de Feuil1 (nom à adapter)
Tu rajoutes une feuille (peu importe son nom) qui n'aura que cette utilité
(masquée ?)
En A1 de la feuille ajoutée, tu mets þuil1!C1
Dans le module de cette feuille ajoutée (clic droit sur l'onglet > visualiser le
code)
Copier/coller :

Private Sub Worksheet_Calculate()
maMacro
End Sub

PS1 : maMacro est le nom de la macro que tu souhaites voir exécuter au
changement par la liste de validation
PS2 : l'événement Worksheet_Change, où qu'il soit situé, ne peut, dans ce cas de
figure, déclencher quoi que ce soit ! (en tout cas chez moi.)

AV

"gandi" a écrit dans le message news:


Merci de m'avoir répondu aussi vite. Cependant j'ai un problème: je ne
suis pas doué en écriture de macros et je ne sais pas comment faire pour
: " utiliser l'événement Private Sub Worksheet_Calculate() de la
nouvelle feuille pour détecter le changement de B5". (Dans mon cas, il
s'agit de "c1", mais ça revient sûrement au même!"

J'espère que vous aurez la patience de m'expliquer!
Bien cordialement
Michel

Michel Gaboly a écrit:

Bonjour,

Voici une réponse de sur ce thème, faite le 3 janvier :


petite difficulté avec la validation de liste
quand on modifie une cellule par validation de liste, l'évènement
Worksheet_Change n'est pas activé
une méthode un peu tordue, utiliser un onglet masqué dans lequel on
écrit
µ (si B5 est la cellule modifiée par validation de liste)
et utiliser l'événement Private Sub Worksheet_Calculate() de la
nouvelle
feuille pour détecter le changement de B5




Bonjour,
j'ai crée une zone de liste, liée à une cellule ("c1") . Cette zone de
liste contient les jours de la semaine. Quand j'active "lundi",
j'obtiens le chiffre 1 en c1; pour "mardi le chiffre 2 et ainsi de suite
jusqu'à dimanche .

J'aimerais qu'à l'affichage du chiffre 1 en "c1", dès que je clique sur
"lundi", se déclenche la macro 1 que j'ai mise dans le module 1 de la
feuille 1.

En feuille1 j'ai mis l' instruction suivante pour provoquer un
déclenchement automatique dès l'apparition des chiffre en "c1":
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = Range("c1").Address And Target.Value = "1" Then
Macro1
End Sub

Mais ça ne fonctionne pas!

Si par contre je frappe le chiffre 1 en "c1" et le valide depuis le
clavier, ma macro fonctionne. Je ne comprends pas pourquoi. Quelqu'un
pourrait-il m'expliquer et me trouver un solution à mon problème.

Merci



--
Cordialement,

Michel Gaboly
http://www.gaboly.com












1 2