Interrogation sur Worsheets_Change

  • Initiateur de la discussion Initiateur de la discussion Charles-Kat
  • Date de début Date de début

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 !

C

Charles-Kat

Guest
Bonjour,

Confronté à un nouveau problème, je me permets de solliciter une nouvelle fois votre aide.

Dans une feuille, j'ai un bouton qui, lorsqu'il est actionné, va chercher des valeurs sur une autre feuille, me les colle dans ma feuille et rajoute une liste déroulante.

Je voudrais maintenant que lorsque je fais le choix actionnant la liste déroulante, il me lance une macro.

Dans ma feuille, j'ai simplement
Private Sub CommandButton1_Click()
Call Mise_à_jour
End Sub

avec Mise_à_jour qui se trouve dans les Modules. Normal.

Ma question est donc : Où placer ma procédure Worksheet_Change(ByVal Target As Range) ? Comment l'appeler ?
Je ne voudrais pas qu'il m'actionne la procédure Worksheet_Change pendant que j'exécute Mise_à_jour évidemment.

Je ne suis pas sûr d'avoir été bien clair. Je l'espère.

Merci beaucoup par avance pour votre aide et bonne journée,

Charles
 
Bonjour le forum,
La procédure (Worksheet_Change(ByVal Target As Range) s'execute AUTOMATIQUEMENT dès que tu opères un changement dans la feuille ratachée à cette procédure. Il existe une procédure (Worksheet_Change(ByVal Target As Range) par feuille.
Maintenant rien ne t'interdit de mettre une condition d'execution dans la procédure d'une des feuilles. Si la condition est vraie, la procédure sera appelée mais non exécutée.
Essaie çà:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If (Target.Row=2) And (Target.Column=2) Then MsgBox ("C'est moi B2 !...")
End Sub

Si tu cliques sur B2 de la feuille contenant cette procédure tu obtients le message, sinon rien.
Tu dois pouvoir faire une adaptation à ton programme.
A+
ChS
 
Comment se fait-il que même sans rien changer dans la cellule et simplement en cliquant sur une cellule se trouvant en colonne 7 et ligne>=6 il affiche la msgbox "OK" ?
Il devrait l'afficher que si la valeur de la cellule change, non ? C'est bien le principe de SelectionChange ?!

Merci et bonne journée,

Charles
 
Re Charles,
SelectionChange ne prend pas en compte la valeur dans une cellule mais le fait de sélectionner une nouvelle cellule ou un objet.
Si tu veux qu'une action se produise après avoir sélectionner une cellule, il faut faire un test sur la valeur de la cellule qui t'intéresse, ex:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'>>> va se produire si la cellule sélectionnée est B2 et non vide
If (Target.Row=2) And (Target.Column=2) And Target.Value<>"" Then
'>>> Place ici ton action
End If
End Sub
A+
ChS
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
510
  • Question Question
XL 2019 VBA
Réponses
10
Affichages
1 K
Réponses
4
Affichages
453
Retour