Private Sub CLsF_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
If NbrLgn = 1 Then CBnValiderF.Caption = "Modifier": Exit Sub
If NbrLgn = 0 Then 'LBxF.Clear
LCouF = 0
ReDim TVLF(1 To 1, 1 To 18)
GarnirCommande
CBnValiderF.Caption = "Ajouter"
End If
End Sub
Private Sub CLsF_Résultat(Lignes() As Long)
Dim TDon(), TLBx(), Ldon As Long, LLBx As Long, C As Long
If UBound(Lignes) = 1 Then
LCouF = Lignes(1)
TVLF = CLsF.Lignes(LCouF).Range.Value
GarnirCommande
Else
TLF = Lignes
Don = CLsF.PlgTablo.Value
ReDim TLBx(1 To UBound(TLF), 1 To 14)
'For LLBx = 1 To UBound(TLF)
'Ldon = TLF(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 8: TLBx(LLBx, C) = TDon(Ldon, Choose(C, 1, 4, 5, 23, 24, 26, 25, 27)): Next C, LLBx 'choix des colonne à ressortir dans la listbox
'LBxF.List = TLBx:
End If
End Sub
Me.LabNbregeffectue = WorksheetFunction.CountA(CLsF.PlgTablo.Columns(14))
Option Explicit
Private WithEvents CLsE As ComboBoxLiées, LCouE As Long, TVLE(), TLE() As Long
Private Sub UserForm_Initialize()
Set CLsE = New ComboBoxLiées
CLsE.Plage [TblSuiviscommande]
CLsE.Add Me.CBxESRechecheRéfcommande, 1, Croissant:=False
CLsE.Add Me.CBxERéfArticle, 8
CLsE.Add Me.CBxEDesArticle, 9
CLsE.CouleurSympa
CLsE.Actualiser
Me.TBxValeurdustock = Sheets("Sommaire").Range("R12")
End Sub
Private Sub CLsE_Résultat(Lignes() As Long)
Dim TDon(), TLBx(), Ldon As Long, LLBx As Long, C As Long
If UBound(Lignes) = 1 Then
LCouE = Lignes(1)
TVLE = CLsE.Lignes(LCouE).Range.Value
GarnirEntrée
Else
TLE = Lignes
TDon = CLsE.PlgTablo.Value
ReDim TLBx(1 To UBound(TLE), 1 To 14)
For LLBx = 1 To UBound(TLE)
Ldon = TLE(LLBx)
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
LBxE.List = TLBx:
End If
End Sub
Private Sub GarnirEntrée()
Me.TBxEQte.Text = TVLE(1, 10)
Me.TBxEPUHT.Text = TVLE(1, 11)
End Sub
Private Sub LBxE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
LBxE.ListIndex = -1
LCouE = 0
CBnEValider.Caption = "Ajouter"
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 Worksheet_Activate()
Dim Données As Collection, TR(), LR&, RefCmd, Détail, PremièreLigne As Boolean
Dim DatTrv As Date
Set Données = Gigogne(TableUnique(Me.ListObjects(1), WshSuivCmd), 1)
ReDim TR(1 To Données.Count, 1 To 13)
For Each RefCmd In Données
LR = LR + 1
TR(LR, 1) = RefCmd.Id ' Identification de la commande
PremièreLigne = True
For Each Détail In RefCmd.Co
If Détail(0) = 0 Then
Rem. Report des infos manuelles de la ligne de facturation qui existait déjà. TR(LR, col. fact) = Détail(col. fact)
'TR(LR, 9) = Détail(9)
'TR(LR, 10) = Détail(10)
'TR(LR, 11) = Détail(11)
'TR(LR, 12) = Détail(12)
'TR(LR, 13) = Détail(13)
'TR(LR, 14) = Détail(14)
Else
If PremièreLigne Then
Rem. Reproduction des informations de la commande. TR(LR, col. fact) = Détail(col. commande)
TR(LR, 2) = Détail(8)
TR(LR, 3) = Détail(9)
TR(LR, 4) = Détail(11)
TR(LR, 5) = Détail(10)
PremièreLigne = False: End If
End If: Next Détail, RefCmd
With Me.ListObjects("TblSuivisEntreeSortis")
If LR < .ListRows.Count Then .ListRows(LR + 1).Range _
.Resize(.ListRows.Count - LR).Delete xlShiftUp
.DataBodyRange.Resize(LR, 5).Value = TR 'pour recalculer les 18première colonne
End With
End Sub