Recherche_nouveo_élément

Bonjour, je voudrais savoir si vous saviez comment je peux faire pour comparer deux listes ( trouver la nouvelle valeur dans ma nouvelle liste par rapport à ma liste complete), affichées dans deux colonnes sur la même feuille .

Sheets("Feuil1").Select

For i = 1 To nbcol

ListeNouvelle(i) = Cells(1, i).Value

Sheets("Feuil2").Cells(i, 1).Value = ListeNouvelle(i)

Next i

For i = 1 To 230

Sheets("Feuil2").Cells(i, 2).Value = ListeComplete(i)

Next i

j'ai juste ca , mon code pour afficher mes deux listes dans la feuille.

Cordialement

bonjour

un fichier est indispensable ; mets le stp en piece jointe

cordialement

J'ai sur ma feuille 1 tableau , avec la première macro je selectionne la premiere ligne que je copie en colonne dans la feuille 2 et je la compare à une liste tapée a la main dans ma macro. Mais je ne sais pas comment comparer les deux listes :/ .

Merci pour votre aide

Bonjour,

D'abord, tu as 231 colonnes, donc ta ListeNouvelle aura un élément de plus que ta ListeComplète... à moins qu'il ne faille pas tenir compte de la colonne A, mais ce n'est pas ce que tu fais.... ?

Ensuite, comparer est une chose ! Mais comparer quoi ? et quel est le critère de comparaison ? Et que doit-il se passer selon le résultat de la comparaison ? Tout cela est à préciser...

NB-Disposant des listes en tableaux, on ne va pas perdre son temps à les flanquer sur une feuille pour comparer !

Bonjour, oui je compare une liste à une autre liste, c'est à dire que je souhaite que ca me retourne les éléments manquants de ma liste complète par rapport à la liste créée à partir de la première ligne de mon fichier !

Retourne où ?

Dans ma feuille 2

J'ai externalisé ta ListeComplete...

Dim ListeComplete() As String

Sub Comparaison_Liste()
    Dim ListeNouvelle() As String, LstCompar(), nbcol%, i%, j%, k%
    ComposeListeComplète
    With Worksheets("Feuil1")
        nbcol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        ReDim ListeNouvelle(1 To nbcol)
        For i = 1 To nbcol
            ListeNouvelle(i) = .Cells(1, i)
        Next i
    End With
    ReDim LstCompar(1, nbcol)
    For i = 1 To nbcol
        For j = 1 To UBound(ListeComplete)
            If ListeComplete(j) = ListeNouvelle(i) Then
                ListeComplete(j) = "": Exit For
            End If
        Next j
        If j > UBound(ListeComplete) Then
            k = k + 1: LstCompar(0, k) = ListeNouvelle(i)
        End If
    Next i
    j = 0
    For i = 1 To UBound(ListeComplete)
        If ListeComplete(i) <> "" Then
            j = j + 1: LstCompar(1, j) = ListeComplete(i)
        End If
    Next i
    k = IIf(k > j, k, j)
    ReDim Preserve LstCompar(1, k)
    LstCompar(0, 0) = "Manquants L.Compl."
    LstCompar(1, 0) = "En plus L. Compl."
    Erase ListeComplete
    With Worksheets("Feuil2")
        .Range("A1").CurrentRegion.ClearContents
        With .Range("A1").Resize(k + 1, 2)
            .Value = WorksheetFunction.Transpose(LstCompar)
            .Rows(1).Font.Italic = True
            .Columns.AutoFit
        End With
        .Activate
    End With
End Sub

Sub ComposeListeComplète()
    ReDim ListeComplete(1 To 230)
    ...

Cordialement.

Je ne comprends pas ce que ton code me retourne, il me retourne des éléments ' manquants' de ma liste alors qu'ils y sont


Nan enfaite c'est bon, merci beaucoup pour le temps que vous m'avez accordé. Vous êtes très fort ! ^^

Là je pense que tu dois apprendre à lire !

S'il te prend la fantaisie de parsemer des espaces d'un côté et de ne pas le faire de l'autre, le programme lui, te signalera qu'il s'agit de noms différents ! Une espace est un caractère qui mérite autant de considération que les autres...

Le premier jet te permettra donc d'apporter les corrections nécessaires dans un sens ou dans l'autre. C'est bien à ça que sert une comparaison, non ?

Exactement oui merci ^^

Rechercher des sujets similaires à "recherche nouveo element"