'Option Explicit
Private Sub CommandButton1_Click()
Dim LstItem As ListItem
Dim i As Long
Dim SelNoms As String, TTT As String
'Vérifie qu'au moins une ligne est sélectionnée
On Error Resume Next
Set LstItem = ListView1.SelectedItem
On Error GoTo 0
If LstItem Is Nothing Then
MsgBox "Aucune ligne n'est sélectionnée."
Exit Sub
End If
'Boucle sur les lignes sélectionnées pour écrire la référence des noms sélectionnés
For i = 1 To ListView1.ListItems.Count
'Affiche le contenu (N°ligne) de la 1ere colonne pour chaque ligne sélectionnée
If ListView1.ListItems(i).Selected = True Then
TTT = "C" & ListView1.ListItems(i) 'Adresse de cellule contenant un nom sélectionné
If SelNoms = "" Then
SelNoms = TTT 'Initialisation avec la première adresse
Else
SelNoms = SelNoms & "," & TTT 'Ajout des autres adresses
End If
End If
Next i
Supp Range(SelNoms) 'Appel de la fonction suppression de lignes
Unload Me
End Sub
Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub CommandButton3_Click()
DeselectionneLvw1
End Sub
Private Sub UserForm_Initialize()
' Dim i As Long, Dlign As Long
Me.StartUpPosition = 1 'Centré
'----- remplissage ListView------------------------
With ListView1
.MultiSelect = True 'Multicolonnes
.FullRowSelect = True 'Sélection par ligne
.LabelEdit = lvwManual 'Pas de modif manuelle dans la première colonne
.Gridlines = False 'Pas de quadrillage
.AllowColumnReorder = True 'Réorganisation des colonnes autorisé
With .ColumnHeaders 'Définit le nombre de colonnes et Entêtes
.Clear 'Supprime les anciens entêtes
'Ajoute 3 colonnes en spécifiant le nom entête + largeur colonnes
.Add , , "Ligne", 30
.Add , , ActiveSheet.Cells(6, 1).Value, 40
.Add , , ActiveSheet.Cells(6, 2).Value, 60
.Add , , ActiveSheet.Cells(6, 3).Value, 50
End With
Dlign = ActiveSheet.Range("C6").End(xlDown).Row
For i = 7 To Dlign
.ListItems.Add , , ActiveSheet.Cells(i, 1).Row
.ListItems(i - 6).ListSubItems.Add , , ActiveSheet.Cells(i, 1).Value
.ListItems(i - 6).ListSubItems.Add , , ActiveSheet.Cells(i, 2).Value
.ListItems(i - 6).ListSubItems.Add , , ActiveSheet.Cells(i, 3).Value
Next i
End With
DeselectionneLvw1
'Spécifie l'affichage en mode "Détails"
ListView1.View = lvwReport
'Par défaut, tri par nom
ListView1.SortKey = 2
ListView1.SortOrder = lvwAscending
ListView1.Sorted = True
End Sub
' ------ Tri en cliquant sur l'en-tête d'une colonne ------
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
ListView1.Sorted = False
ListView1.SortKey = ColumnHeader.Index - 1
If ListView1.SortOrder = lvwAscending Then
ListView1.SortOrder = lvwDescending
Else
ListView1.SortOrder = lvwAscending
End If
ListView1.Sorted = True
End Sub
Public Sub DeselectionneLvw1()
Dim X As Long
For X = 1 To ListView1.ListItems.Count
ListView1.ListItems(X).Selected = False
Next
Set ListView1.SelectedItem = Nothing
End Sub
Private Sub UserForm_Terminate()
Selection.Select 'Remet le focus sur la sélection
End Sub