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

Déclencher une macro en vba

5 réponses
Avatar
Pierre F.
Bonjour et bonsoir à toutes et tous!

petit problème dont je ne suis pas sûr qu'il ait une solution.

Sur ma feuil1, j'ai placé le code suivant:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$E$5" Then Exit Sub Else clignotement
End Sub

La macro "clignotement" fait clignoter 3 cellules que l'utilisateur doit
absolument remplir.

Pour la déclencher, j'utilise la cellule E5... mais en fait, c'est bien
là le problème :-)

L'utilisateur arrive par une macro sur cette page depuis une autre page
nommée accueil et il n'a aucune raison de cliquer sur E5; le lui dire
n'aurait aucun sens et lui demander de cliquer sur une autre cellule aussi.
Le dernier ordre de la macro en question est "Range("E5").select

Ce qui se passe, c'est que quand je clique "pour de vrai" sur e5, la
macro se déclenche et fonctionne très bien.
Mais quand c'est la macro qui "range", rien ne sa passe.

Est-il possible de remédier à ça, c'est à dire à forcer le déclenchement
de la macro avec un simple range?

Merci pour votre aide... et tant pis si aucune soluce n'existe; je sais
que je deviens gourmand :-)

Cordialement,
Pierre F.

5 réponses

Avatar
Daniel.C
Bonsoir.
Des fois que E5 soit déjà sélectionnée, mets :
Range("E4").Select
Range("E5").Select
Cordialement.
Daniel

Bonjour et bonsoir à toutes et tous!

petit problème dont je ne suis pas sûr qu'il ait une solution.

Sur ma feuil1, j'ai placé le code suivant:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$E$5" Then Exit Sub Else clignotement
End Sub

La macro "clignotement" fait clignoter 3 cellules que l'utilisateur doit
absolument remplir.

Pour la déclencher, j'utilise la cellule E5... mais en fait, c'est bien là le
problème :-)

L'utilisateur arrive par une macro sur cette page depuis une autre page
nommée accueil et il n'a aucune raison de cliquer sur E5; le lui dire
n'aurait aucun sens et lui demander de cliquer sur une autre cellule aussi.
Le dernier ordre de la macro en question est "Range("E5").select

Ce qui se passe, c'est que quand je clique "pour de vrai" sur e5, la macro se
déclenche et fonctionne très bien.
Mais quand c'est la macro qui "range", rien ne sa passe.

Est-il possible de remédier à ça, c'est à dire à forcer le déclenchement de
la macro avec un simple range?

Merci pour votre aide... et tant pis si aucune soluce n'existe; je sais que
je deviens gourmand :-)

Cordialement,
Pierre F.


Avatar
Philippe.R
Bonsoir,
Pourquoi ne pas simplement terminer la macro qui positionne sur la feuille
en question par l'appel à clignotement ?
Tu pourrais peut être même t'éviter la procédure évènementielle.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Pierre F." a écrit dans le message de
news:83b64$490f4423$55da2e70$
Bonjour et bonsoir à toutes et tous!

petit problème dont je ne suis pas sûr qu'il ait une solution.

Sur ma feuil1, j'ai placé le code suivant:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$E$5" Then Exit Sub Else clignotement
End Sub

La macro "clignotement" fait clignoter 3 cellules que l'utilisateur doit
absolument remplir.

Pour la déclencher, j'utilise la cellule E5... mais en fait, c'est bien là
le problème :-)

L'utilisateur arrive par une macro sur cette page depuis une autre page
nommée accueil et il n'a aucune raison de cliquer sur E5; le lui dire
n'aurait aucun sens et lui demander de cliquer sur une autre cellule
aussi.
Le dernier ordre de la macro en question est "Range("E5").select

Ce qui se passe, c'est que quand je clique "pour de vrai" sur e5, la macro
se déclenche et fonctionne très bien.
Mais quand c'est la macro qui "range", rien ne sa passe.

Est-il possible de remédier à ça, c'est à dire à forcer le déclenchement
de la macro avec un simple range?

Merci pour votre aide... et tant pis si aucune soluce n'existe; je sais
que je deviens gourmand :-)

Cordialement,
Pierre F.


Avatar
Pierre F.
Philippe.R a écrit :
Bonsoir,
Pourquoi ne pas simplement terminer la macro qui positionne sur la
feuille en question par l'appel à clignotement ?
Tu pourrais peut être même t'éviter la procédure évènementielle.



Merci pour vos propositions; aucune ne fonctionne pour l'instant.

Oui, j'ai essayé cette solutions en premier... mais c'est parce qu'elle
ne fonctionne pas que j'ai cherché autre chose...

Peut-être une boulette dans la macro d'appel??
Voici la macro qui devrait aboutir sur feuil1 avec range en E5

La macro qui ne se déclenche pas est intitulée "clignotement".

-----------------------------
Sub choisirUtilises()
Application.ScreenUpdating = False
reponse = ""
choix = "Les plus utilisés"

Sheets("+Utilises").Select
If Cells(3, 17) = "" Then Sheets("Accueil").Select: Exit Sub
If Cells(66, 17) <> "" Then GoTo copier
Msg = "Attention, blabla; voulez tout de même continuer?"
Style = vbYesNo
reponse = MsgBox(Msg, Style)
If reponse = vbNo Then GoTo AHNON

copier:
copierfeuilleverbes

Sheets("feuil1").Select
clignotement
[b1] = choix
If reponse <> vbNo Then Exit Sub
AHNON: Sheets("Accueil").Select
End Sub
-------------------------------

Merci pour votre aide

Cordialement,
Pierre F.
Avatar
Daniel.C
Exécute-la en mode ligne à ligne, tu verras ce qui pêche.
Daniel

Philippe.R a écrit :
Bonsoir,
Pourquoi ne pas simplement terminer la macro qui positionne sur la feuille
en question par l'appel à clignotement ?
Tu pourrais peut être même t'éviter la procédure évènementielle.



Merci pour vos propositions; aucune ne fonctionne pour l'instant.

Oui, j'ai essayé cette solutions en premier... mais c'est parce qu'elle ne
fonctionne pas que j'ai cherché autre chose...

Peut-être une boulette dans la macro d'appel??
Voici la macro qui devrait aboutir sur feuil1 avec range en E5

La macro qui ne se déclenche pas est intitulée "clignotement".

-----------------------------
Sub choisirUtilises()
Application.ScreenUpdating = False
reponse = ""
choix = "Les plus utilisés"

Sheets("+Utilises").Select
If Cells(3, 17) = "" Then Sheets("Accueil").Select: Exit Sub
If Cells(66, 17) <> "" Then GoTo copier
Msg = "Attention, blabla; voulez tout de même continuer?"
Style = vbYesNo
reponse = MsgBox(Msg, Style)
If reponse = vbNo Then GoTo AHNON

copier:
copierfeuilleverbes

Sheets("feuil1").Select
clignotement
[b1] = choix
If reponse <> vbNo Then Exit Sub
AHNON: Sheets("Accueil").Select
End Sub
-------------------------------

Merci pour votre aide

Cordialement,
Pierre F.


Avatar
Pierre F.
Daniel.C a écrit :
Exécute-la en mode ligne à ligne, tu verras ce qui pêche.
Daniel



Pas réaliste... il y a trop de macro et évènements imbriqués qui
couvrent beaucoup de données.

Mais j'ai trouvé une soluce en fixant les case à remplir à 0 ce qui
oblige l'utilisateur à les remplir (rien ne peut logiquement fonctionner
avec ces valeurs).

Merci à tous de vous être penchés sur mon problème.

Cordialement,
Pierre F.