Supprimer une donnée dans un listview

Gisma - 6 janv. 2021 à 02:21
JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 - 18 janv. 2021 à 01:12
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

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
6 janv. 2021 à 11:17
0
JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 7
Modifié le 7 janv. 2021 à 20:03
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

0
Je te reviens par la suite merci
0
JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 7
18 janv. 2021 à 01:12
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 !
0
Rejoignez-nous