Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 suspendre l'execution Change() tout en modifiant le combobox

  • Initiateur de la discussion Initiateur de la discussion SPGoder
  • 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 !

SPGoder

XLDnaute Occasionnel
Bonjour
C'est certainement une idée tordue, mais dans l'instruction suivant, quand le combobox1 reçoit une valeur, la macro se relance au début (normal puisque le combobox a alors changé)
Ma question, peut t on l’empêcher et qu'il modifie quand même la valeur de combobox1 et continue le code
J’espère avoir été assez clair dans l'explication
Je m'attends a une réponse : mauvaise utilisation, ou il y a moyen de faire autrement, et je n'en doute pas, mais cette question me taraude quand même
VB:
 Private Sub ComboBox1_Change()
......
code
........
ComboBox1 = Ws.Cells(Ligne, "G")
.......
code
.........
end sub
 
Bonsoir SPGoder,
On peut suspendre les événements par :
Application.EnableEvents = False
et les réactiver par :
Application.EnableEvents = True

Surtout ne pas oublier la réactivation sinon tout est bloqué. Faire en sorte que la suspension soit la plus courte possible.
VB:
Private Sub ComboBox1_Change()
......
code
........
Application.EnableEvents=False
ComboBox1 = Ws.Cells(Ligne, "G")
Application.EnableEvents=True
.......
code
.........
end sub
 
Bonjour Sylvanu, et à tous,
Application.enabledevents ne fonctionne pas sur un combobox
Perso je mets en haut du module
Public kit As Boolean
et ensuite
Private Sub ComboBox1_Change()
if kit=true then exit sub
kit=true
'le code qui modifie
kit=false

Bruno
 
Bonsoir @SPGoder , @sylvanu , @youky(BJ) , le Forum

Pour moi mettre l'alimentation d'une ComboBox dans l'évènement Change de cette dernière est un simple non-sence ! Un serpent qui se mort la queue, une boucle sans fin, la génération d'un trou noir !!!

Tu vas rejoindre le côté sombre de la force comme ça !! LoL

Bonne continuation
@+Thierry
 
re
bonjour a tous

ComboBox1 = Ws.Cells(Ligne, "G")

je me pose une question
est ce que Ws.Cells(Ligne, "G") ne fait pas déjà partie de la liste

au quel cas pas besoins de variable intermédiaire("kit" exemple de @youky(BJ))
et application.enableevents n'a rien avoir la dedans
non tout simplement gérer l'event dans if .listindex si l'item existe dans la liste

si il n'existe pas


tout simplement

VB:
Private Sub ComboBox1_Change()
 with combobox1
  if .value<> Ws.Cells(Ligne, "G") then
  'faire ceci  blablabla
  .value= Ws.Cells(Ligne, "G")
  else'
  'faire cela'blablabla
  end if
 end with
end sub
😉
 
Merci de vos réponse à tous,
Effectivement, Application.enabledevents ne fonctionne pas sur un combobox
Dans le cas présent, l'item n'existera pas car rempli avec la concaténation de 2 cellules, (nom et prénom) pour n'enregistrer que le nom dans le combobox

Tu vas rejoindre le côté sombre de la force comme ça !! LoL
c'est déjà fait...😀
 
VB:
Public kit As Boolean

Private Sub ComboBox1_Change()

.......code

If kit = True Then Exit Sub
        kit = True
        ComboBox1 = Ws.Cells(Ligne, "G")
        kit = False
....... code

Ne fonctionne pas non plus, retourne au début : change()
 
Dernière édition:
re
Je l'ai bien évidement lu et étudié, mais pas testé
car tu suggérai que

Alors que
Dans le cas présent, l'item n'existera pas car rempli avec la concaténation de 2 cellules, (nom et prénom) pour n'enregistrer que le nom dans le combobox

D'ou ma demande de pouvoir remplir le combobox malgré le change()
 
J'ai fait autrement, je me suis inspiré de ce que m'a proposé thierry dans un autre post. (pour éviter le serpent qui......)
Malgré tout, il est toujours interressant de savoir si on peut avoir une astuce pour ce cas de figure
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…