none
Suppression doublon datagridview RRS feed

  • Question

  • Bonjour, c'est encore moi !

    J'aurais besoin d'un regard neuf sur mon code de suppression de doublons.

    En effet, il marche quand je selectionne que 2 elements, a partir de 3 il fait n'importe quoi en ajoutant des éléments ou mettant genre 4 fois le même élément ...

    Voila le code :

      'definition nouveau tableau
            Dim list2() As String
            ReDim list2(1)
            Dim nb = 1
            'premier element du tableau = premier element de la listview
            list2(1) = DataGridView1.Item(1, 0).Value.ToString
            For i = 1 To DataGridView1.RowCount - 2
                For j = 2 To DataGridView1.RowCount - 1
                    'si  la ligne (i+1) est différente de la ligne (i)
                    If DataGridView1.Item(1, i).Value.ToString <>
                        DataGridView1.Item(1, j).Value.ToString Then
                        nb = nb + 1
                        'je la garde
                        ReDim Preserve list2(nb)
                        'je la stocke
                        list2(nb) = DataGridView1.Item(1, i).Value.ToString
                    End If
                Next
            Next
            'j'efface les éléments du tableau
            DataGridView1.Rows.Clear()
            'je mets mon nouveau tableau dans ma listview
            For i = 1 To nb
                DataGridView1.Rows.Add(False, list2(i))
            Next

    jeudi 24 avril 2014 09:24

Réponses

  • Voila j'ai ma solution ! Problème d'indexation/indice.

    Pour les prochains :

    Voici le code :

     'definition nouveau tableau
            Dim list() As String
            ReDim list(1)
            Dim nb = 1
            'premier element du tableau = premier element du DataGirdView
            list(1) = DataGridView1.Item(1, 0).Value.ToString
            For i = 1 To DataGridView1.RowCount - 1
                'si la ligne (i-1) est différente de la ligne (i)
                If DataGridView1.Item(1, i - 1).Value.ToString <> DataGridView1.Item(1, i).Value.ToString Then
                    nb = nb + 1
                    'je la garde
                    ReDim Preserve list(nb)
                    'je la stocke
                    list(nb) = DataGridView1.Item(1, i).Value.ToString
                End If
            Next
            'j'efface les éléments du tableau
            DataGridView1.Rows.Clear()
            'je mets mon nouveau tableau dans mon DataGirdView
            For i = 1 To nb
                DataGridView1.Rows.Add(False, list(i))
            Next 

    • Marqué comme réponse Tom57000 jeudi 24 avril 2014 11:39
    jeudi 24 avril 2014 11:39