Matching de donnees
Bonjour,
j'aimerais votre aide pour construire une boucle qui me permettrait de matcher des données.
Je détiens une liste de noms dans une feuille et une autre dans une seconde feuille. Mon but est de copier des données de la seconde feuille dans la première si le nom entre les feuilles est le même.
J'ai déjà essayé ce code qui fait planter mon programme excel :
Sub Fusion_FEUILLE()
Dim x As Integer
Dim Z As Integer
For x = 2 To 2001
For Z = 2 To 2001
If Sheets("Feuil1").Cells(x, 1) = Sheets("Feuil2").Cells(Z, 1) Then
Sheets("Feuil2").Cells(Z, 2) = Sheets("Feuil1").Cells(x, 4) And Sheets("Feuil2").Cells(Z, 3) = Sheets("Feuil1").Cells(x, 5)
End If
Next Z
Next x
End Sub
Le problème dans mon code est le suivant :
Le premier nom de la première feuille va être comparé avec le premier nom de la deuxième feuille
si aucune correspondance n'est détectée, le code va faire que le second nom de la première feuille sera comparé avec le second nom de la seconde feuille etc...
J'aimerais comparer le premier nom de la première feuille avec toute la liste de noms de la seconde feuille avant de passé au nom suivant.
J'espère avoir bien expliqué mon problème
Ci-joint un fichier test,
en vous remerciant de vos retours,
Salut,
Voici ton code corrigé.
Sub Fusion_FEUILLE()
Dim x As Integer
Dim Z As Integer
For x = 2 To Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
For Z = 2 To Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row
If Sheets("Feuil1").Cells(x, 1) = Sheets("Feuil2").Cells(Z, 1) Then
Sheets("Feuil2").Cells(Z, 2) = Sheets("Feuil1").Cells(x, 4)
Sheets("Feuil2").Cells(Z, 3) = Sheets("Feuil1").Cells(x, 5)
End If
Next Z
Next x
End Sub
Dans le fichier ci-joint, j'ai ajouté des données dans les colonnes 4 et 5 de ta Feuil1. De plus, sur cette feuille, tu as écrit PAUL avec un espace (j'ai corrigé dans le fichier ci-retourné) ; Excel ne trouve donc pas de concordance avec PAUL sans espace.
C'est un code qui pourrait être passablement amélioré du point de vue esthétique, logique et pratique.
......….si aucune correspondance n'est détectée, le code va faire que le second nom de la première feuille sera comparé avec le second nom de la seconde feuille etc...
C'est faux : le premier nom de la première feuille est comparé avec tous les noms de la seconde feuille avant que ça passe au deuxième nom de la première feuille.
Amicalement.