Rebonjour Jean P.
effectivement j'ai été un peu trop succint dans ma réponse
la ligne dans la ListBox etait supprimée en premier (ListBox1.RemoveItem ListBox1.ListIndex).
comme la reference de la cellule(Cells(ListBox1.ListIndex + 1, 1)) était défini par l'index de la ListBox qui venait de perdre une unité , il y avait un décalage au moment de la suppression .
le fait d'ajouter une variable en début de macro "NumLigne = ListBox1.ListIndex" , permet de "figer" la valeur avant d'effectuer les suppressions
sinon pour ta derniere question :
'initialisation de l'USF en alimentant une listbox milticolonne
Private Sub UserForm_Initialize()
Dim Tableau As Variant
Tableau = Worksheets("Feuil5").Range("A1
10") 'plage de cellules à inserer
ListBox1.ColumnCount = 4 'nb de colonnes dans la ListBox
ListBox1.List() = Tableau 'insertion dans la ListBox
End Sub
Private Sub CommandButton2_Click()
Dim NumLigne As Integer
NumLigne = ListBox1.ListIndex
If NumLigne <> -1 Then
ListBox1.RemoveItem NumLigne
Worksheets("Feuil5").Range(Cells(NumLigne + 1, 1), Cells(NumLigne + 1, 4)).Delete Shift:=xlUp
'Worksheets("Feuil5").Rows(NumLigne + 1).Delete 'pour supprimer la ligne complete
End If
End Sub
j'espere que j'ai répondu à ta question
bonne soirée
MichelXld