Option Explicit
Private Sub UserForm_Initialize()
Dim MyWS As Worksheet
Dim MyPlage As Range, MyCell As Range
Set MyWS = ThisWorkbook.Worksheets("Sheet1")
Set MyPlage = MyWS.Range("A2:A" & MyWS.Range("A500").End(xlUp).Row) '<<<< On définit la plage de cellules non vides en colonne A
Me.ListBox1.Locked = True
For Each MyCell In MyPlage
If MyCell.Offset(0, 3) <> "" Then '<<<< On regarde si la cellule à droite décallée de 3 (soit "D") n'est pas vide
Me.ListBox1.AddItem MyCell.Value '<<<< On ajoute les noms qui vont être traités (visu seule)
End If
Next MyCell
With Me.ListBox2
.AddItem "Catégorie AAA" '<<<< On ajoute les Catégories en "dur"
.AddItem "Catégorie BBB"
.AddItem "Catégorie CCC"
.AddItem "Catégorie DDD"
.AddItem "Catégorie EEE"
End With
End Sub
Private Sub CommandButton1_Click()
Dim MyWS As Worksheet
Dim MyPlage As Range, MyCell As Range
Set MyWS = ThisWorkbook.Worksheets("Sheet1")
Set MyPlage = MyWS.Range("A2:A" & MyWS.Range("A500").End(xlUp).Row)
For Each MyCell In MyPlage
If MyCell.Offset(0, 3).Value <> "" Then '<<<< On regarde si la cellule à droite décallée de 3 (soit "D") n'est pas vide
MyCell.Offset(0, 4).Value = Me.ListBox2.Value '<<<< On écrit la catégorie en décallé de 4, soit "E"
End If
Next MyCell
End Sub