Private Sub UserForm_Initialize()
With Me.ListView1
.Gridlines = True
.View = lvwReport
.FullRowSelect = True
.ColumnHeaders.Add Text:="ID", Width:=1
.ColumnHeaders.Add Text:="Commande", Width:=90
.ColumnHeaders.Add Text:="Date Commande", Width:=80
End With
With Me.ListView2
.Gridlines = True
.View = lvwReport
.FullRowSelect = True
.ColumnHeaders.Add Text:="Réf Comm.", Width:=1
.ColumnHeaders.Add Text:="Article", Width:=185
.ColumnHeaders.Add Text:="Quantité", Width:=45, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="Prix", Width:=55, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="Remise", Width:=50, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="Sous Total", Width:=55, Alignment:=fmAlignmentRight
.ColumnHeaders.Add Text:="Total", Width:=55, Alignment:=fmAlignmentRight
End With
Private Sub CmbRepresentant_Change()
Dim ItemCmde As ListItem
On Error Resume Next
Me.ListView1.ListItems.Clear
Set Wksh = Sheets("Commandes Clients")
Set plage = Wksh.[E1].CurrentRegion
Set plage = plage.Offset(1).Resize(plage.Rows.Count - 1)
Set cel = plage.Find(Me.CmbRepresentant, , , xlWhole)
If Not cel Is Nothing Then
premaddress = cel.Address
Do
Set ItemCmde = Me.ListView1.ListItems.Add(Text:=cel.Offset(0, -4))
ItemCmde.SubItems(1) = cel.Offset(0, -3)
ItemCmde.SubItems(2) = cel.Offset(0, -2)
Me.TxtNbCmdes.Value = Me.ListView1.ListItems.Count
Set cel = plage.FindNext(cel)
Loop While Not cel Is Nothing And cel.Address <> premaddress
End If
Me.ListView2.ListItems.Clear
Me.ListView3.ListItems.Clear
End Sub
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim ItemDtC As ListItem, ItemCCl As ListItem
With ListView2
Set Wksh = Sheets("Details Commandes")
Set plage = Wksh.[A1].CurrentRegion
Set plage = plage.Offset(1).Resize(plage.Rows.Count - 1)
Set cel = plage.Find(Item.SubItems(1), , , xlWhole)
If Not cel Is Nothing Then
premaddress = cel.Address
.ListItems.Clear
Do
Set ItemDtC = .ListItems.Add(Text:=cel.Offset(0, 0))
ItemDtC.SubItems(1) = cel.Offset(0, 1)
ItemDtC.SubItems(2) = cel.Offset(0, 2)
ItemDtC.SubItems(3) = Format(cel.Offset(0, 3), "0.00.-")
ItemDtC.SubItems(4) = Format(cel.Offset(0, 4) / 100, "0%")
ItemDtC.SubItems(5) = Format(cel.Offset(0, 5), "0.00.-")
ItemDtC.SubItems(6) = Format(cel.Offset(0, 6), "0.00.-")
Set cel = plage.FindNext(cel)
Loop While Not cel Is Nothing And cel.Address <> premaddress
End If
End Sub