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

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
 

SPGoder

XLDnaute Occasionnel
patricktoulon

Je viens de tester, mais ça ne fonctionne pas, ce qui est prévisible car je pense que j'ai du mal exprimé mon besoin
Je veux remplir le combobox1 avec la cells( ligne:"G") . (qui correspond à un nom.)
Combobox 1 est inialement charger avec cells( ligne:"G") & cells( ligne:"H")
Lorsque je fais le test .value <> cells( ligne:"G") , le résultat sera forcement faux, donc je lui demande de remplir combobox1 avec cells( ligne:"G")
Mais j'ai pas du comprendre
VB:
With ComboBox1
If .Value <> Ws.Cells(Ligne, "G") Then
    ComboBox1 = Ws.Cells(Ligne, "G")
    Else
End If
End With
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Ca c'est de la Force Sombre qui oréole un gros trou noir !!!

En UserForm_Initialize :
CheckBox5 = True


En CheckBox5_Click (qui capte ce qu'on fait en Initialise)
If CheckBox5 = True Then
....
With ComboBox1
ComboBox1.Clear
For BA = 2 To Ws.Range("G" & Rows.Count).End(xlUp).Row
.AddItem Worksheets("Baux").Range("G" & BA) & " - " & Worksheets("baux").Range("H" & BA)
Next BA

End With

En ComboBox1_Change (qui capte ce qu'on fait en CheckBox5_Clic)
With ComboBox1
' ComboBox1 = Ws.Cells(Ligne, "G")
If .Value <> Ws.Cells(Ligne, "G") Then
ComboBox1 = Ws.Cells(Ligne, "G")
Else
End If


J'ai mal à la tête et je vais adhérer à la ligue intergalactique de la défence des ComboBox contre le harcèlement des Triggers Lazers à répétition !!!

1594673459120.png

Bonne nuit
@+Thierry
 

patricktoulon

XLDnaute Barbatruc
re
je viens d'ouvrir
Thierry tu n'es pas seul :p
non sans blague c'est quoi çà;)

rien qu'un exemple ceci
VB:
If ComboBox1.Value <> "" Then
    
        'initialise combobox4 "Code Baux"
        With ComboBox4
            For BA2 = 2 To Worksheets("baux").Range("A" & Rows.Count).End(xlUp).Row
               .AddItem Worksheets("baux").Range("A" & BA2)
            Next BA2
            lig = BA2 - 1    'récupère le nombre de ligne d'enregistrement
        End With
alors il faudra m'expliquer en quoi c'est nécessaire de lister dans combo 4 les numéros de bail alors q'un nom prénom est sensé n'en avoir qu'un :rolleyes:
et puis même a quoi te sert de re remplir le combo4 a chaque change du combo1 surtout que tu fini plus bas par choisir l'item( ligne,"A")

et tout le code de l'userform est comme ça

fait moi plaisir reprend tout a zéro proprement avec des méthodes propres et revois ta logique car là ça ne l'est pas

bref Thierry bon courage;)
 

SPGoder

XLDnaute Occasionnel
Je vais tenter d'expliquer: avant toute chose, je ne suis pas programmeur, donc par conséquence, je n'ai pas du tout la logique tel que je devrais l'avoir. D’où ma demande d'indulgence. (même si ça peut piquer les yeux, ce que je comprends, si vous deviez apprendre une langue étrangère, je doute que vous sachiez écrire un livre dans cette langue au bout de 3 semaines sans faire de fautes de syntaxes, ou autres.) Mais j'accepte les critiques constructives et surtout explicatives, c'est comme cela que l'on apprends. Rassurez vous je ne suis pas succeptible, bien au contraire, j'aime l'autodérision et le chambrage.;)
Alors il faudra m'expliquer en quoi c'est nécessaire de lister dans combo 4 les numéros de bail alors q'un nom prénom est sensé n'en avoir qu'un :rolleyes:
et puis même a quoi te sert de re remplir le combo4 a chaque change du combo1 surtout que tu fini plus bas par choisir l'item( ligne,"A")
Dans ma compréhension, comme on décharge combobox1 des que l'on change de valeur, j'essaye de passé par le combobox4 pour compter mon nombre de ligne ou récupérer ma ligne d'enregistrement, car ce code comme vous l'indiquez est unique lui aussi( et a savoir qu'un nom ou prénom peut avoir des homonymes)
Voilà pour l'explication de mon raisonnement
Je vais essayer de réécrire tout ça
Merci de votre temps et patience à tous. Je vais voir si j'ai pas des actions chez tchin tcin affelelou pour soigner vos yeux à force de lire mon code tout pourri :cool:
 

patricktoulon

XLDnaute Barbatruc
re
alors pour commencer puisque tu rempli par boucle tes combo
tu va me faire plaisir de remplir des combo (la combo1 avec le nom prenom bail (3colonnes dont 2 masquées)
quand tu sélectionne tu aura a dispo tes donnée sans papillionner dans ce code absurde

et au cas ou divers controls toucheraient au combo
dans le change du combo tu met par exemple pour le combo1
ça permet de zapper le change si c'est un checkbox ou autre qui change la combo1

private sub combobox1_change()
if activecontrol.name<>"combobox1" then
'blablabla
'blablabla
'blablabla
end if
end sub
 

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 570
dernier inscrit
patrickb83p