Sur une UserForm :
Afficher le code source de votre UserForm
Créer une procédure d'initialisation
Associer votre ImageList à votre ListView en saisissant le code suivant :
Listview1.SmallIcons = ImageList1
Ne pas positionner l'option Checkbox=true
Où Listview1 est le nom de votre objet ListView et ImageList1 celui de votre objet ImageList.
Dans la procédure ListView1_Click()
Private Sub ListView1_Click() Dim Item As MSComctIlib.ListItem For Each Item In ListViex1.ListItems If ListView1.ListItems(Item.Index).Selected Then 'Actions à exécuter ListView1_ItemCheck Item Exit For End If Next End Sub
Et dans la procédure ListView1_ItemCheck(ByVal Item as MSComctlLib.ListItem)
Private Sub ListView1_ItemCheck(ByVal Item As MSComctIlib.ListItem) Dim Appli As MSComctIlib.ListItem For Each Appli In ListView1.ListItems If "condition1 est vraie" Then If "condition2 est vraie" Then If ListView1.ListItems(Appli.Index).SmallIcon = 2 Then ListView1.ListItems(Appli.Index).SmallIcon = 3 ElseIf ListView1.ListItems(Appli.Index).SmallIcon = 3 Then ListView1.ListItems(Appli.Index).SmallIcon = 1 Else ListView1.ListItems(Appli.Index).SmallIcon = 2 End If End If End If Next End Sub
Mise à jour à l'aide d'un bouton :
Private Sub Btn_Valider_Click() Dim Item As ListItem, Appli As ListItem 'On enregistre les postes sélectionnés For Each Item In LV_Poste.ListItems If Item.Checked Then 'On enregistre les applis sélectionnées For Each Appli In LV_Appli.ListItems If Appli.SmallIcon = 2 Then 'Action(s) à effectuer ElseIf Appli.SmallIcon = 3 Then 'Action(s) à effectuer End If Next End If Next 'Remise des cases à cocher dans l'état primaire For Each Appli In LV_Appli.ListItems Appli.SmallIcon = 1 Next End Sub