Déclencher macro depuis une liste déroulante

Le
Pierre F.
Bonjour à toutes et tous


J'ai cherché sur ce forum mais tout ce que j'ai trouvé et essayé ne
fonctionne pas
Je dois être un peu nul

En B3, j'ai une liste déroulante (validation) qui peut contenir les
nombres 6, 12, 18, 24 ou 30

Je souhaiterais que lorsqu'on choisi 12 par exemple, la macro (présente
dans un module "normal") nommée mepq12 soit lancée

Dans le code de la feuille, j'ai écrit ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(ActiveCell, [B3]) Is Nothing Then
Select Case Target
Case 6: mepq6
Case 12: mepq12
Case 18: mepq18
Case 24: mepq24
Case 30: mepq30
End Select
End If
End Sub

J'ai essayé de placer ce code dans le ThisWorkbook mais ça ne va pas
mieux :-(

Il y a des jours comme ça :-)

Merci pour votre aide.

Cordialement,
Pierre F.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #17534861
Bonjour,
La code en question fonctionne parfaitement chez moi.(ActiveCell==>target ne
change rien)
http://cjoint.com/?kpnp7R02Ld
Reboot le pc.
--
Salutations
JJ


"Pierre F." a75b6$48f5c88c$55da2eb8$
Bonjour à toutes et tous


J'ai cherché sur ce forum mais tout ce que j'ai trouvé et essayé ne
fonctionne pas...
Je dois être un peu nul...

En B3, j'ai une liste déroulante (validation) qui peut contenir les
nombres 6, 12, 18, 24 ou 30

Je souhaiterais que lorsqu'on choisi 12 par exemple, la macro (présente
dans un module "normal") nommée mepq12 soit lancée...

Dans le code de la feuille, j'ai écrit ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(ActiveCell, [B3]) Is Nothing Then
Select Case Target
Case 6: mepq6
Case 12: mepq12
Case 18: mepq18
Case 24: mepq24
Case 30: mepq30
End Select
End If
End Sub

J'ai essayé de placer ce code dans le ThisWorkbook... mais ça ne va pas
mieux :-(

Il y a des jours comme ça :-)

Merci pour votre aide.

Cordialement,
Pierre F.


JPMonnier
Le #17535111
Bonjour,
en plaçant le code dans la feuille (VBA) contenant la liste déroulant, ça
fonctionne chez moi
mais placé dans ThisWorkbook ça ne fonctionne pas
--
Cordialement

"Pierre F." news:a75b6$48f5c88c$55da2eb8$
Bonjour à toutes et tous


J'ai cherché sur ce forum mais tout ce que j'ai trouvé et essayé ne
fonctionne pas...
Je dois être un peu nul...

En B3, j'ai une liste déroulante (validation) qui peut contenir les
nombres 6, 12, 18, 24 ou 30

Je souhaiterais que lorsqu'on choisi 12 par exemple, la macro (présente
dans un module "normal") nommée mepq12 soit lancée...

Dans le code de la feuille, j'ai écrit ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(ActiveCell, [B3]) Is Nothing Then
Select Case Target
Case 6: mepq6
Case 12: mepq12
Case 18: mepq18
Case 24: mepq24
Case 30: mepq30
End Select
End If
End Sub

J'ai essayé de placer ce code dans le ThisWorkbook... mais ça ne va pas
mieux :-(

Il y a des jours comme ça :-)

Merci pour votre aide.

Cordialement,
Pierre F.


Daniel.C
Le #17535401
Bonjour.
Non, c'est bien, il faut le mettre dans le module feuille (clic droit sur
l'onglet et clic sur "visualiser le code". Remplace aussi activecell par
"target", les deux pouvant être différents.
--
Cordialement.
Daniel
"Pierre F." a75b6$48f5c88c$55da2eb8$
Bonjour à toutes et tous


J'ai cherché sur ce forum mais tout ce que j'ai trouvé et essayé ne
fonctionne pas...
Je dois être un peu nul...

En B3, j'ai une liste déroulante (validation) qui peut contenir les
nombres 6, 12, 18, 24 ou 30

Je souhaiterais que lorsqu'on choisi 12 par exemple, la macro (présente
dans un module "normal") nommée mepq12 soit lancée...

Dans le code de la feuille, j'ai écrit ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(ActiveCell, [B3]) Is Nothing Then
Select Case Target
Case 6: mepq6
Case 12: mepq12
Case 18: mepq18
Case 24: mepq24
Case 30: mepq30
End Select
End If
End Sub

J'ai essayé de placer ce code dans le ThisWorkbook... mais ça ne va pas
mieux :-(

Il y a des jours comme ça :-)

Merci pour votre aide.

Cordialement,
Pierre F.


Daniel.C
Le #17535391
Bonjour.
J'ai eu un jour un gros souci avec un utilisateur dont la sélection descend
d'une cellule après validation, auquel cas target <> activecell
--
Cordialement.
Daniel
"Jacky"
Bonjour,
La code en question fonctionne parfaitement chez moi.(ActiveCell==>target
ne
change rien)
http://cjoint.com/?kpnp7R02Ld
Reboot le pc.
--
Salutations
JJ


"Pierre F." a75b6$48f5c88c$55da2eb8$
Bonjour à toutes et tous


J'ai cherché sur ce forum mais tout ce que j'ai trouvé et essayé ne
fonctionne pas...
Je dois être un peu nul...

En B3, j'ai une liste déroulante (validation) qui peut contenir les
nombres 6, 12, 18, 24 ou 30

Je souhaiterais que lorsqu'on choisi 12 par exemple, la macro (présente
dans un module "normal") nommée mepq12 soit lancée...

Dans le code de la feuille, j'ai écrit ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(ActiveCell, [B3]) Is Nothing Then
Select Case Target
Case 6: mepq6
Case 12: mepq12
Case 18: mepq18
Case 24: mepq24
Case 30: mepq30
End Select
End If
End Sub

J'ai essayé de placer ce code dans le ThisWorkbook... mais ça ne va pas
mieux :-(

Il y a des jours comme ça :-)

Merci pour votre aide.

Cordialement,
Pierre F.







Jacky
Le #17535631
Bonjour Daniel

Oui, tu as tout à fait raison.
Perso, je ne déplace pas le curseur après validation d'ou ce manque de
vérification.
Donc Pierre,
If Not Intersect(ActiveCell, [B3]) Is Nothing Then
à remplacer par
If Not Intersect(Target, [B3]) Is Nothing Then


--
Salutations
JJ


"Daniel.C"
Bonjour.
J'ai eu un jour un gros souci avec un utilisateur dont la sélection
descend d'une cellule après validation, auquel cas target <> activecell
--
Cordialement.
Daniel
"Jacky"
Bonjour,
La code en question fonctionne parfaitement chez moi.(ActiveCell==>target
ne
change rien)
http://cjoint.com/?kpnp7R02Ld
Reboot le pc.
--
Salutations
JJ


"Pierre F." news:
a75b6$48f5c88c$55da2eb8$
Bonjour à toutes et tous


J'ai cherché sur ce forum mais tout ce que j'ai trouvé et essayé ne
fonctionne pas...
Je dois être un peu nul...

En B3, j'ai une liste déroulante (validation) qui peut contenir les
nombres 6, 12, 18, 24 ou 30

Je souhaiterais que lorsqu'on choisi 12 par exemple, la macro (présente
dans un module "normal") nommée mepq12 soit lancée...

Dans le code de la feuille, j'ai écrit ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(ActiveCell, [B3]) Is Nothing Then
Select Case Target
Case 6: mepq6
Case 12: mepq12
Case 18: mepq18
Case 24: mepq24
Case 30: mepq30
End Select
End If
End Sub

J'ai essayé de placer ce code dans le ThisWorkbook... mais ça ne va pas
mieux :-(

Il y a des jours comme ça :-)

Merci pour votre aide.

Cordialement,
Pierre F.











Pierre F.
Le #17536101
Daniel.C a écrit :
Bonjour.
Non, c'est bien, il faut le mettre dans le module feuille (clic droit sur
l'onglet et clic sur "visualiser le code". Remplace aussi activecell par
"target", les deux pouvant être différents.



Merci à vous tous...

Je n'y comprends plus rien :-(

Quand je fais tourner l'exemple de Jacky, tout fonctionne !!!
Mais pour mon classeur... que dalle

J'ai testé mes macros une à une et elles fonctionnent correctement.

Je vous met en cjoint un extrait de mon classeur.
Merci pour votre collaboration.

http://cjoint.com/?kpoyu54jBZ

Cordialement
Pierre F.

PS: Bizarrerie au démarrage d'Excel, j'ai le message suivant (depuis
quelques jours): "Impossible de créer le menu".

Mais le fichier de Jacky a eu le même message et il fonctionne :-(
Pierre F.
Le #17536091
Jacky a écrit :

Donc Pierre,
If Not Intersect(ActiveCell, [B3]) Is Nothing Then
à remplacer par
If Not Intersect(Target, [B3]) Is Nothing Then



OK; j'ai fait le changement... mais pas d'amélioration :-(
Voir ma réponse à Daniel C.

Merci; cordialement,
Pierre F.
Pierre F.
Le #17536081
Jacky a écrit :

Reboot le pc.



C'est fait et rien ne change hélas :-(

Cordialement,
Pierre F.
Daniel.C
Le #17536061
Ca fonctionne chez moi. A tout hasard, mets la macro suivante dans un
classeur et exécute-la avant de tester :

Sub test()
application.EnableEvents=True
End Sub

--
Cordialement.
Daniel
"Pierre F." bd546$48f5e17e$55da2eb8$
Daniel.C a écrit :
Bonjour.
Non, c'est bien, il faut le mettre dans le module feuille (clic droit sur
l'onglet et clic sur "visualiser le code". Remplace aussi activecell par
"target", les deux pouvant être différents.



Merci à vous tous...

Je n'y comprends plus rien :-(

Quand je fais tourner l'exemple de Jacky, tout fonctionne !!!
Mais pour mon classeur... que dalle

J'ai testé mes macros une à une et elles fonctionnent correctement.

Je vous met en cjoint un extrait de mon classeur.
Merci pour votre collaboration.

http://cjoint.com/?kpoyu54jBZ

Cordialement
Pierre F.

PS: Bizarrerie au démarrage d'Excel, j'ai le message suivant (depuis
quelques jours): "Impossible de créer le menu".

Mais le fichier de Jacky a eu le même message et il fonctionne :-(



Pierre F.
Le #17536291
Daniel.C a écrit :
Ca fonctionne chez moi. A tout hasard, mets la macro suivante dans un
classeur et exécute-la avant de tester :

Sub test()
application.EnableEvents=True
End Sub



Merci.

Trouvé la soluce mais ne comprends pas pourquoi.
J'ai fait tourner ta petite macro dans un classeur vide puis dans le
classeur en question.

Rien n'a changé

.. sauf que ... sans le faire exprès, j'ai été touiller les options
(mode de calcul automatique --> mis en mode calcul sur ordre...) et ça
fonctionne !!! Je crois rêver :-)

Merci à vous tous pour votre patience.

Cordialement,
Pierre F.

PS: en prime, je n'ai plus le message au démarrage d'Excel...
Publicité
Poster une réponse
Anonyme