Bonsoir,
il faut jouer avec une variable "interrupteur" afin d'empêcher des mises à jour de ComboBox en dehors d'un fonctionnement nominal.
Voici une partie du code à modifier :
Dim Encours As Boolean
Private Sub cboDesignation_Change()
If optDes = True Then
Encours = True
cboModel = ""
cboNoEq = ""
'Récupère les données de la colonne A...
Set mondico = CreateObject("Scripting.Dictionary")
a = Sheets("DATA").Range("A2:I" & Sheets("DATA").[A65000].End(xlUp).Row) ' tableau a(n,1) pour rapidité
For i = LBound(a) To UBound(a)
If a(i, 7) <> "" And cboDesignation = a(i, 1) Then mondico(a(i, 7)) = ""
Next i
'--avec tri
temp = mondico.keys
Call Tri(temp, LBound(temp), UBound(temp))
cboModel.List = temp
Encours = False
End If
End Sub
L'interrupteur ici est "Encours", on le passe à vrai dès que l'on change la valeur de la première ComboBox, puis on le passe à faux une fois cette ComboBox initialisée.
Puis ajouter un test sur "Encours" afin de quitter la procédure s'il est égal à vrai :
Private Sub cboModel_Change()
Dim j As Integer
Dim i As Integer
If Encours Then Exit Sub
Private Sub cboNoEq_Change()
Dim fe As Worksheet 'déclare la variable Fe (Onglet)
Dim Rch As Range 'déclare la variable Rch (Recherche)
Dim Lig As Long 'déclare la variable LI (LIgne)
If Encours Then Exit Sub
Et voilà cela fonctionne !
@ bientôt
LouReeD