Comparer des colonnes de deux feuilles

Bonjour,

alors voila mon problème. J'aimerai Comparer la colonne B d'une feuille 1 à la colonne 25ème colonne d'une deuxième feuille nommée synthèse. Ensuite si dans ces deux colonnes il y a des valeurs identiques alors je veux recopier la 3ème colonne de la feuille 1 dans la 26ème colonne de ma feuille synthese. J'ai trouvé un code efficace en recherchant sur Excel_Pratrique codé par ThauThème .

J'ai modifié certaines lignes pour qu'il fonctionne dans mon cas. Cependant ce code ne fonctionne seulement sur une feuille. Je ne connais pas la syntaxe exacte pour faire ça sur deux feuilles différentes.

Je vous remercie d'avance de votre aide

Voici le code:

Sub analyse()

Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim TC, TC2 As Variant 'déclare la variable TC (Tableau de Cellules)
Dim NL As Integer 'déclare la variable NL (Nombre de Lignes)
Dim I As Integer 'déclare la variable I (Incrément)
Dim R As Range 'déclare la variable R (Recherche)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

DL = Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 2 (=B)
TC = Range("B1:B" & DL + 1) 'définit le tableau de cellules TC
NL = UBound(TC, 1) 'définit le nombre de lignes NL du tableau de cellules TC
For I = 1 To NL 'boucle sur toutes les lignes I du tableau de cellules TC
   'condition si la recherche R (recherche entière de la valeur ligne I colonne 1 de TC dans la colonne 2) renvoie au moins une occurrence trouvée
   If Not Columns(25).Find(TC(I, 1), , xlValues, xlWhole) Is Nothing Then
        ''definit la cellule de destination DEST (D1 si D1 est vide, sinon la première cellule vide de la colonne D)
       Set DEST = IIf(Range("Z1").Value = "", Range("Z1"), Cells(Application.Rows.Count, 26).End(xlUp).Offset(1, 0))
        DEST.Value = Cells(I, 3).Value 'récupère dans DEST la valeur ligne I colonne 1 de TC
   End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub

PS: Je n'ai pas modifié les commentaires de code

Bonjour et bienvenue sur le forum

Il serait plus facile de te proposer quelque chose si on pouvait le mettre au point sur un fichier...

Ne pourrais-tu le joindre, même modifier pour le rendre anonyme, si nécessaire ?

Bye !

Merci pour ta réponse.

J'ai joints un fichier d'exemple.

Ce que j'ai déjà programmé dans mon fichier d'origine c'est de recopier le tableau de la feuille 1 dans la feuille synthèse.

Ensuite je veux recopier les données complémentaires (de chaque client) qui sont présentent dans le tableau de la feuille 2 vers ma feuille synthèse. Bien sur les données recopiée dans la feuille synthèse à partir de la feuille 2 doivent correspondre à l'identité du client. C'est cette partie de code que je n'arrive pas à faire.

Je te remercie pour ton aide!

88client.xlsx (10.44 Ko)

Un essai à tester. Te convient-il ?

Bye !

134client-v1.xlsm (19.53 Ko)

Merci beaucoup pour ton code.

Il y a juste un petit problème avec une ligne. Lorsque je lance la macro dans mon fichier excel j'ai ce message d'erreur:

erreur d'exécution 9: l'indice n'appartient pas à la sélection

Sur cette ligne:

Sheets("synthese").Range("A2").Resize(UBound(v, 2), 7) = Application.Transpose(v)

(ma feuille se nomme bien synthese.

C'est curieux car sur mon fichier, le code exact de l'instruction qui bugue n'est pas :

Sheets("synthese").Range("A2").Resize(UBound(v, 2), 7) = Application.Transpose(v)

mais :

Sheets("Synthèse").Range("A2").Resize(UBound(v, 2), 7) = Application.Transpose(v)

Le nom de la feuille est écrit avec une majuscule et un accent.

Je ne comprends pas qu'il ait pu se modifier ainsi juste dans le transfert de fichier...

Bye !

Bonjour,

Non désolé je voulais dire que l'erreur ne venais pas du nom de la feuille car c’étais moi qui avais changé le nom "Synthèse" par "synthese" dans mon fichier excel.

L'erreur a disparue mais j'ai toujours un problème...

J'ai collé mes deux tableaux de ma feuille exemple (fichier client) dans les feuilles de mon fichier excel d'origine et le code fait ce que je voulais. Ensuite j'ai importé des tableaux bien plus gros dans mes feuilles, il me reaffiche le tableau que j'avais utilisé avant (de la feuille client). Je ne sais pas si je suis très clair

J'ai pourtant exactement le même code que tu m'as écris (en faisant quand même les modifications appropriés au nom de mes feuilles)

Adelinose a écrit :

Ensuite j'ai importé des tableaux bien plus gros dans mes feuilles,

Alors joins ce fichier et s'il est trop gros, passe par http://www.cjoint.com

Bye !

Rechercher des sujets similaires à "comparer colonnes deux feuilles"