Option Explicit
Private Const CELL_ADDRESS As String = "E5:E22"
Private Sub UserForm_Initialize()
Dim WS As Worksheet
Dim WB As Workbook
Dim Cell As Range, Plage As Range
Set WB = ThisWorkbook
With ListView1
'affichage en mode "Détails"
.Font.Bold = True
.View = 3 'lvwReport
.Gridlines = True
.LabelEdit = 1 'Pour "Locked" la ListView
With .ColumnHeaders
.Clear
.Add , , "famille", 80
.Add , , "référence", 80
.Add , , "désignation", 80
.Add , , "fournisseur", 80
.Add , , "QTE", 30
.Add , , "stock mini", 60
.Add , , "Difference", 60
End With
End With
For Each WS In WB.Worksheets
Set Plage = WS.Range(CELL_ADDRESS)
For Each Cell In Plage
If Cell.Value < Cell.Offset(0, 3) Then '+++ si la valeur E < H +++
With Me.ListView1
.ListItems.Add , , WS.Name
.ListItems(.ListItems.Count).ListSubItems.Add , , Cell.Offset(0, -4)
.ListItems(.ListItems.Count).ListSubItems.Add , , Cell.Offset(0, -3)
.ListItems(.ListItems.Count).ListSubItems.Add , , Cell.Offset(0, -2)
.ListItems(.ListItems.Count).ListSubItems.Add , , Cell
.ListItems(.ListItems.Count).ListSubItems.Add , , Cell.Offset(0, 3)
.ListItems(.ListItems.Count).ListSubItems.Add , , Cell.Value - Cell.Offset(0, 3)
End With
End If
Next Cell
Next WS
End Sub