Option Explicit
Private WithEvents CL As ComboBoxLiées, LCou As Long, TV(), _
TBase(), DicBase As Dictionary ' RAPPEL: ACTIVEZ LA RÉFÉRENCE Microsoft Scripting Runtime !
Private Sub UserForm_Initialize()
Set CL = Création.ComboBoxLiées
CL.Plage ActiveSheet.[A10:H10], True
CL.Add Me.CBxEMAT8, 1, "&"
CL.Add Me.CBxAISM, 4, "&"
CL.CouleurSympa
Rem. Supprimez les RowSource si vous activez ces instructions :
'me.cbxnomdebaptème.list = array("19", "51", "52","CCT","EMDIV1")
'me.cbxsgl.list = array("4100", "4800", "44??")
'me.cbxcie.list = array("1", "2", "CCL", "CADO", "CA")
'me.cbxgqgn.list = array("GQ", "GN")
TBase = WshBase.[A2:B2].Resize(WshBase.[A65000].End(xlUp).Row - 1).Value
Dim Suj: Suj = CBXL.SujetCBx(TBase)
Set DicBase = CBXL.DicoSujet(Suj)
CL.Actualiser
End Sub
Private Sub CBnEffacer_Click()
If CL.ChangéÀLEchap Then Exit Sub
'RAPPEL: METTEZ À True LA PROPRIÉTÉ Cancel DE CBnEffacer !
CL.Nettoyer
End Sub
Private Sub CL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
Dim TLBase() As Long, N As Long
With CBnValider: .Enabled = NbrLgn <= 1
.Caption = IIf(NbrLgn = 0, "Ajouter", "Modifier"): End With
CBxAISM.Clear
If DicBase.Exists(CBxEMAT8.Text) Then
TLBase = DicBase(CBxEMAT8.Text)
For N = 1 To UBound(TLBase)
CBxAISM.AddItem TBase(TLBase(N), 2)
Next N
CBxASM.ListIndex = 0: End If
If NbrLgn = 1 Then Exit Sub
LCou = 0: ReDim TV(1 To 1, 1 To 10)
GarnirAutresContrôles
End Sub