Recherche correspondance multiple dans deux feuilles

Bonjour,

J'ai un petit soucis au boulot que je n'arrive pas à résoudre.

Mon cas est le suivant.

Dans un premier tableau j'ai une liste de référence. Dans mon deuxième tableau, j'ai une liste de références qui sont toutes contenues dans le premier tableau. Je voudrais pouvoir faire une correspondance dans le premier tableau.

Oui mais voilà, j'ai plusieurs problèmes auxquels je bute :

D'abord, pour une référence du premier tableau, j'ai plusieurs références similaires dans le second. J'aimerais donc créer des lignes à chaque fois qu'il trouve une occurence.

Ensuite, les références de mon second tableau présentent parfois des espaces à la fin, ce qui ne me permet pas de les identifier...

Voir l'exemple en pièce jointe.

J'ai tenté pleins de trucs avant mais je bloque tjs à un moment, là j'ai essayé un truc vite fait mais je bloque prq l'idée est trop compliquée

Sub test()

Dim row As Double

Dim srow As Double

Dim col As Double

Dim scol As Double

Dim Ref As String

Dim i As Double

Dim j As Double

row = 3

col = 5

srow = 3

scol = 5

i = 0

j = 0

Sheets(4).Select

While Rows < 28000

Ref = Cells(row + i, col).Value

Sheets(3).Select

While Rows < 17000

If Cells(srow + j, scol) = Ref Then

Sheets(4).Select

-> réécrire la valeur de search dans une 6ème colonne en face de la ref

J + 1

-> Si il trouve une deuxième correspondance, créer une nouvelle ligne et réécrire la valeur Ref dans la 6ème colonne en face de la ref correspondante

J'espère que vous pourrez m'aider sur ce sujet qui me bloque totalement.

Cordialement,

14exemple.xlsx (8.93 Ko)

Bonjour,

Ton fichier doit correspondre, même s'il s'agit d'un exemple, à ton énoncé. Met les données dans chaque feuille comme tu nous a expliqué et retourne-nous le fichier.

Bonjour,

Le probleme, c'est que le résultat va modifier la liste de référence de la première feuille. J'ai mis le résultat attendu dans la troisième feuille, mais au final tout doit être dans la liste de référence de la première feuille.

J'ai tenté de faire qlqch de plus propre, mais ça ne marche toujours pas... J'étais pourtant assez content du code, qui me semblait clair. J'ai adapté le code à l'exemple :

Sub Test()

Dim row As Double

Dim srow As Double

Dim col As Double

Dim scol As Double

Dim search As String

Dim i As Double

Dim j As Double

Dim coln As Double

row = 2

col = 1

coln = 2

srow = 2

scol = 1

While row < 150

search = Sheets("Feuil1").Cells(row, col).Value

While srow < 17000

If Sheets("Feuil2").Cells(srow, scol) = search Then

Sheets("Feuil1").Cells(row, coln) = search

While i < 20

i = 1

If Sheets("Feuil2").Cells(srow + i, scol) = search Then

Sheets("Feuil1").Rows(row + i).Insert

Sheets("Feuil1").Cells(row + i, coln) = search

Else

End If

i = i + 1

Wend

Else

srow = srow + 1

End If

Wend

row = row + 1

Wend

End Sub

Merci,

Cordialement,

14exemple.xlsx (9.16 Ko)

Bonsoir,

Essaye le code suivant :

Sub test()
    Feuil1.Activate
    Cells(2, 1).Select
    derLig = Feuil2.Range("A" & Rows.Count).End(xlUp).Row
    For Each cel In Feuil2.Range("A2:A" & derLig)
        If ActiveCell = cel Then
            ActiveCell.Offset(0, 1) = cel
        ElseIf ActiveCell > cel Then
            Rows(ActiveCell.Row).Insert
            ActiveCell.Offset(0, 1) = cel
        Else
            Do Until ActiveCell = cel
                ActiveCell.Offset(1, 0).Select
            Loop
            ActiveCell.Offset(0, 1) = cel
        End If
        ActiveCell.Offset(1, 0).Select
    Next cel
End Sub

Bonjour,

le code fonctionne parfaitement pour l'exemple.

Pour mon cas cependant, il doit traiter quelques références, puis l'erreur 1004 apparait. Il a quand meme bien fait son travail pr les références qu'il a traité. Voici le code "modifié"

Sub test()
    Sheets("Airbus Standards List for AH").Select
    Cells(3, 5).Select
    derLig = Sheets("Feuil1").Range("E" & Rows.Count).End(xlUp).Row
    For Each cel In Sheets("Feuil1").Range("E3:E" & derLig)
        If ActiveCell = cel Then
            ActiveCell.Offset(0, 1) = cel
        ElseIf ActiveCell > cel Then
            Rows(ActiveCell.Row).Insert
            ActiveCell.Offset(0, 1) = cel
        Else
            Do Until ActiveCell = cel
                ActiveCell.Offset(1, 0).Select
            Loop
            ActiveCell.Offset(0, 1) = cel
        End If
        ActiveCell.Offset(1, 0).Select
    Next cel
End Sub

Voilà... Merci de votre aide

Bonjour,

le code fonctionne parfaitement pour l'exemple.

Pour mon cas cependant, il doit traiter quelques références, puis l'erreur 1004 apparait. Il a quand meme bien fait son travail pr les références qu'il a traité. Voici le code "modifié"

Sub test()
    Sheets("Airbus Standards List for AH").Select
    Cells(3, 5).Select
    derLig = Sheets("Feuil1").Range("E" & Rows.Count).End(xlUp).Row
    For Each cel In Sheets("Feuil1").Range("E3:E" & derLig)
        If ActiveCell = cel Then
            ActiveCell.Offset(0, 1) = cel
        ElseIf ActiveCell > cel Then
            Rows(ActiveCell.Row).Insert
            ActiveCell.Offset(0, 1) = cel
        Else
            Do Until ActiveCell = cel
                ActiveCell.Offset(1, 0).Select
            Loop
            ActiveCell.Offset(0, 1) = cel
        End If
        ActiveCell.Offset(1, 0).Select
    Next cel
End Sub

Voilà... Merci de votre aide

Rechercher des sujets similaires à "recherche correspondance multiple deux feuilles"