Supprimer une donnée dans un listview

Signaler
-
Messages postés
206
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
13 février 2021
-
Bonjour,

En effet, je possède un bouton modifier et deux listview (listview 1 et listview 2).
Les mêmes informations étant ajoutées dans les deux listview, je voudrais à ce que lorsque je clique ou sélection un item dans la listview 1 et que je clique sur le bouton modifier l'item sélectionné se supprime dans la listview 2.
Aidez moi svp
Merci d'avance

3 réponses

Messages postés
7406
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
3 juin 2021
123
Messages postés
206
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
13 février 2021
7
Salut Gisma,

La chose est simple, mais il faut initialiser l'élément 'key' du 'listview', car la valeur 'index' n'sera pas la même entre les deux 'listview'...

Donc, deux listviews et un bouton 'command1' nommé "Effacer":

Private Sub Command1_Click()
 
' test les selecteds dans la collection.
For Each itm In ListView1.ListItems

' Si non vide :
    If Not (ListView1.SelectedItem Is Nothing) Then

' Si selectionné :              
        If itm.Selected Then
            TestKey = ListView1.SelectedItem.Key
            bOk = False

' Test la valeur Key et prend l'index du lV2.
              For Each itm2 In ListView2.ListItems
              If itm2.Key = TestKey Then bOk = True: MyIndex = itm2.Index
              Next itm2

'Efface son entrée si existante.
             If bOk Then ListView2.ListItems.Remove MyIndex

        End If
    End If
Next

End Sub

Private Sub Form_Load()
Dim a As Integer

' Init ListView1 et ListView2
For a = 1 To 10
ListView1.ListItems.Add a, "REC" & a, "Hello " & a
Next

For Each itm In ListView1.ListItems
ListView2.ListItems.Add itm.Index, itm.Key, itm.Text
Next

End Sub

Je te reviens par la suite merci
Messages postés
206
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
13 février 2021
7
Salut Gisma,

Juste pour te rappeler que tu dois nommer l'objet ".Key" car ".index" est l'indentation physique de l'enregistrement... et à chaque fois que tu fera un tri par nom, par exemple, cet index sera modifié.
Donc le principe est de tester le ".Key" pour retrouver l'enregistrement miroir.
Sinon, l'index ne correspondra pas à la bonne ligne... C'était l'astuce... car on ne peut pas supprimer un enregistrement sans passer par l'index...

Amuse-toi bien !