Interrogation sur Worsheets_Change

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
 
C

ChristianS

Guest
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
 
C

Charles-Kat

Guest
Mais l'interaction pose un problème avec la commande du bouton.
En fichier joint, on voit le problème lorsqu'on appuie sur le bouton.

Merci

Charles
 

Pièces jointes

  • Macro_Selection.zip
    11.4 KB · Affichages: 17
  • Macro_Selection.zip
    11.4 KB · Affichages: 17
  • Macro_Selection.zip
    11.4 KB · Affichages: 17
C

ChristianS

Guest
Bonjour tout le monde,
Je pense avoir compris ta demande mais n'en suis pas certain.
Regarde l'exemple que je te renvoie avec 2 remarques de simplification.
Bonne journée
ChS
 

Pièces jointes

  • Macro_Selection.zip
    12.9 KB · Affichages: 19
  • Macro_Selection.zip
    12.9 KB · Affichages: 21
  • Macro_Selection.zip
    12.9 KB · Affichages: 17
C

Charles-Kat

Guest
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
 
C

ChristianS

Guest
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
 

Discussions similaires

Statistiques des forums

Discussions
313 131
Messages
2 095 554
Membres
106 294
dernier inscrit
Stéphkdsd