Y aurait-il quelqu'un (Banzai ou quelqu'un d'autre...) qui aurait la gentillesse de m'expliquer cette partie du code, je n'arrive pas à comprendre...
Sub ListViewGlobal()
Dim Mondico As Object
Dim J As Long, NbLg As Long
Dim Nb As Integer, I As Integer
If Ws.Range("M2") <> "" Then
Ws.Range("M2:Q" & Ws.Range("M" & Rows.Count).End(xlUp).Row).ClearContents
End If
NbLg = Ws.Range("A" & Rows.Count).End(xlUp).Row
Set Mondico = CreateObject("Scripting.dictionary")
For J = 2 To NbLg
Mondico(Ws.Range("B" & J).Value) = ""
Next J
If Mondico.Count > 0 Then
Ws.Range("M2").Resize(Mondico.Count) = Application.Transpose(Mondico.keys)
Ws.Range("N2").Formula = "=COUNTIF($B$2:$B$" & NbLg & ",M2)"
Ws.Range("O2").Formula = "=M2*N2"
Ws.Range("P2").Formula = "=SUMPRODUCT(($D$2:$D$" & NbLg & "<>"""")*($B$2:$B$" & NbLg & "=M2)*($B$2:$B$" & NbLg & "))"
Ws.Range("Q2").Formula = "=O2-P2"
Ws.Range("N2:Q2").AutoFill Ws.Range("N2:Q" & 1 + Mondico.Count), xlFillSeries
End If
With Me.ListView1
.ListItems.Clear
'Titres des colonnes
With .ColumnHeaders
.Clear
'Ajout des colonnes
.Add , , "Condit.", 60, lvwColumnLeft
.Add , , "Nb Flacon", 60, lvwColumnCenter
.Add , , "Volume", 60, lvwColumnCenter
.Add , , "Prélevée", 60, lvwColumnCenter
.Add , , "Reste", 60, lvwColumnCenter
End With
For J = 2 To Ws.Range("M" & Rows.Count).End(xlUp).Row
'on remplit la première colonne de la listview avec la valeur de la variable
.ListItems.Add , Ws.Range("M" & J).Address, Ws.Range("M" & J)
Nb = Nb + 1
'on remplit les autres colonnes de la listview
For I = 2 To .ColumnHeaders.Count
.ListItems(Nb).ListSubItems.Add , , Ws.Cells(J, I + 12)
Next I
If Ws.Range("P" & J) <> 0 Then
.ListItems(Nb).ForeColor = RGB(255, 0, 0)
For I = 1 To .ColumnHeaders.Count - 1
.ListItems(Nb).ListSubItems(I).ForeColor = RGB(255, 0, 0)
Next I
End If
Next J
End With
End Sub