ption Explicit
Private WithEvents CLsC As ComboBoxLiées, LCouC As Long, TVLC(), TLC() As Long, _
WithEvents CLsE As ComboBoxLiées, LCouE As Long, TVLE(), TLE() As Long
Private Sub UserForm_Initialize()
Set CLsC = New ComboBoxLiées
CLsC.Plage [TblSuiviscommande]
CLsC.Add Me.CBxCRechecheRéfcommande, 1, Croissant:=False
CLsC.Add Me.CBxCRéfArticle, 8
CLsC.Add Me.CBxCDesArticle, 9
CLsC.CouleurSympa
CLsC.Actualiser
If Not Me.ActiveControl Is FrmC Then CLsC.Stopper
Set CLsE = New ComboBoxLiées
CLsE.Plage [TblSuivisEntreeSortis]
CLsE.Add Me.CBxCRéfArticle, 1, Croissant:=False
CLsE.Add Me.CBxCDesArticle, 2
CLsE.Add Me.CBxCRechecheRéfcommande, 4
CLsE.Add Me.CBxType, 5
CLsE.Add Me.CBxEDate, 6
CLsE.Add Me.CBxEemplacement, 9
CLsE.CouleurSympa
CLsE.Actualiser
If Not Me.ActiveControl Is FrmE Then CLsE.Stopper
End Sub
Private Sub CLsC_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
If NbrLgn = 1 Then Exit Sub
If NbrLgn = 0 Then
LCouC = 0
ReDim TVLC(1 To 1, 1 To 14)
GarnirCommande
End If
End Sub
Private Sub CLsC_Résultat(Lignes() As Long)
Dim TDon(), TLBx(), Ldon As Long, LLBx As Long, C As Long
If UBound(Lignes) = 1 Then
LCouC = Lignes(1)
TVLC = CLsC.Lignes(LCouC).Range.Value
GarnirCommande
Else
TLC = Lignes
TDon = CLsC.PlgTablo.Value
ReDim TLBx(1 To UBound(TLC), 1 To 14)
For LLBx = 1 To UBound(TLC)
Ldon = TLC(LLBx)
'For C = 1 To 14: TLBx(LLBx, C) = TDon(Ldon, C): Next C, LLBx ' code pour affichage total listbox changer paramètre 1To8 nb colonne affiché dans la list box
For C = 1 To 3: TLBx(LLBx, C) = TDon(Ldon, Choose(C, 8, 9, 10)): Next C, LLBx 'choix des colonne à ressortir dans la listbox
LBxC.List = TLBx:
End If
End Sub
Private Sub CLsE_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
If NbrLgn = 1 Then CBnEValider.Caption = "Modifier": Exit Sub
If NbrLgn = 0 Then 'LBxA.Clear
LCouE = 0
ReDim TVLE(1 To 1, 1 To 10)
GarnirEntree
CBnEValider.Caption = "Ajouter"
End If
End Sub
Private Sub CLsE_Résultat(Lignes() As Long)
Dim TDon(), TLBx(), Ldon As Long, LLBx As Long, C As Long
TLE = Lignes
TDon = CLsE.PlgTablo.Value
ReDim TLBx(1 To UBound(TLE), 1 To 10)
'For LLBx = 1 To UBound(TLC)
' Ldon = TLC(LLBx)
'For C = 1 To 6: TLBx(LLBx, C) = Tdon(Ldon, C): Next C, LLBx
' For C = 1 To 6: TLBx(LLBx, C) = TDon(Ldon, Choose(C, 1, 8, 9, 10, 11, 12)): Next C, LLBx 'choix des colonne à ressortir dans la listbox
'LBxC.List = TLBx
TVLE = CLsE.Lignes(Lignes(1)).Range.Value
GarnirEntree ' Tout:=False
End Sub
Private Sub GarnirCommande()
Me.TBxCQte.Text = TVLC(1, 10)
Me.TBxCPUHT.Text = TVLC(1, 11)
End Sub
Private Sub GarnirEntree()
Me.TBxCPUHT.Text = TVLE(1, 3)
Me.TBxERéfBL.Text = TVLE(1, 7)
Me.TBxEQte.Text = TVLE(1, 8)
Me.TBxERemarque.Text = TVLE(1, 10)
End Sub
Private Sub LBxC_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
LBxC.ListIndex = -1
LCouC = 0
CBnEValider.Caption = "Ajouter"
End Sub
Private Sub FrmE_Enter()
CLsC.Stopper: FrmC.BackColor = &HE9E9FF
CLsE.Réactiver: FrmE.BackColor = &HD8FFD8
End Sub
Private Sub FrmC_Enter()
CLsE.Stopper: FrmE.BackColor = &HE9E9FF
CLsC.Réactiver: FrmC.BackColor = &HD8FFD8
End Sub
Private Sub CBnRazC_Click()
CLsC.Nettoyer
End Sub
Private Sub CBnRazE_Click()
CLsE.Nettoyer
End Sub
'**********************************************
' Procédure permettant de fermer un formulaire
'**********************************************
Private Sub BTnFemer_Click()
Unload Me
End Sub
Private Sub CBnEValider_Click()
'If LCouE = 0 Then ReDim TVLE(1 To 1, 1 To 14)
TVLE(1, 1) = Me.CBxCRéfArticle.Text
TVLE(1, 2) = Me.CBxCDesArticle.Text
TVLE(1, 3) = ValeurTBx(Me.TBxCPUHT, vbCurrency)
TVLE(1, 4) = Me.CBxCRechecheRéfcommande.Text
TVLE(1, 5) = Me.TBxType.Text
TVLE(1, 6) = ValeurTBx(Me.CBxEDate, vbDate)
TVLE(1, 7) = ValeurTBx(Me.TBxERéfBL)
TVLE(1, 8) = ValeurTBx(Me.TBxEQte, vbDouble)
TVLE(1, 9) = ValeurTBx(Me.CBxEemplacement)
TVLE(1, 10) = ValeurTBx(Me.TBxERemarque)
If LCouE = 0 Then
CLsE.ValeursVers TVLE
CLsE.Lignes.Add.Range.Resize(, 11).Value = TVLE
CLsE.Actualiser
Rem. Refaire un Dictionary ? Refiltrer quelque chose ? On verra !
Else
CLsE.Lignes(LCouE).Range.Resize(, 11).Value = TVLE '11=nombre de colonnes contenant des constantes
End If
End Sub