Comparer des colonnes de classeurs différents puis coller des infos !!!

cephalotus

XLDnaute Occasionnel
Bonjour le forum,

Après des recherches, je n’ai pas trouvé mon bonheur.

J’ai deux classeurs qui comprennent chacun 1 feuille.

Classeur1 - DTS (colonne d’intérêt « A » et « O »)
Classeur2 - Products (colonne d’intérêt « B » et « D »)

Ce que je voudrais faire :

Comparer mon classeur1 colonne « O » avec mon classeur2 colonne « D ». Si je trouve des références identiques, je copie ce qui se trouve dans la cellule correspondant à la ligne de la colonne « A » classeur1, puis je colle cela dans la colonne « B » de mon classeur2.

Bon, je ne sais pas si j’ai été clair, je joins donc mes exemples.. (attention, classeur d’origine avec beaucoup de références) !


Merci pour vos réponses.
 

Pièces jointes

  • exemple excel.zip
    13 KB · Affichages: 25
  • exemple excel.zip
    13 KB · Affichages: 23
  • exemple excel.zip
    13 KB · Affichages: 24
Dernière édition:

gbinforme

XLDnaute Impliqué
Re : Comparer des colonnes de classeurs différents puis coller des infos !!!

bonsoir,

tes fichiers ne peuvent pas être ouverts, mais je te propose de mettre cette macro dans ton classeur "Products" et de la lancer en ayant ouvert "DTS".

Cela devrait mettre à jour ton classeur "Products" .

Code:
Option Explicit

Public Sub recherche()
Dim k As Integer
Dim l As Integer
Sheets.Add.Name = "mano"
Windows("DTS.xls").Activate
Sheets(1).Cells.Copy
Windows("Products.xls").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets(2).Activate
For l = 1 To Cells(65536, 4).End(xlUp).Row
    With Sheets("mano")
        For k = 1 To .Cells(65536, 15).End(xlUp).Row
            If .Cells(k, 15).Value = Cells(l, 4).Value Then
                Cells(l, 2).Value = .Cells(k, 1).Value
            End If
        Next k
    End With
Next l
Application.DisplayAlerts = False
Sheets("mano").Delete
Application.DisplayAlerts = True
End Sub
 

cephalotus

XLDnaute Occasionnel
Re : Comparer des colonnes de classeurs différents puis coller des infos !!!

bonsoir gbinforme, le forum,

Je te remercie pour ta réponse. Je viens de remettre à jour mes fichiers. Ils sont maintenant au format excel 97/2003.

Je viens de tester ta macro comme tu me l'as indiqué, il y a une erreur, sauf si j'ai pas fait ce que m'as demandé (c'est possible, je suis débutant en excel).
De plus, je ne comprends pas, car il y a une feuille qui souvre appelée mano.

Donc, ce que je voudrais faire:

Si je trouve une référence identique (colonne D) du Products dans mon DTS (colonne O), je copie ce qui ce trouve colonne A du DTS, et je colle l'information dans ma colonne B du Products. Si je ne trouve pas, je ne mets rien.

J'essaie d'être clair, mais c'est pas facile !!

Merci pour ta, vos réponses.
 

gbinforme

XLDnaute Impliqué
Re : Comparer des colonnes de classeurs différents puis coller des infos !!!

cephalotus à dit:
De plus, je ne comprends pas, car il y a une feuille qui souvre appelée mano.

bonsoir,

effectivement pour simplifier, ton fichier DTS, qui doit être ouvert, est copié dans une feuille provisoire "mano" qui est supprimée à la fin.

Ensuite, si je trouve une référence identique (colonne D) du Products dans "mano" - copie de ton fichier DTS - (colonne O), je copie ce qui ce trouve colonne A de "mano", et je colle l'information dans ta colonne B du Products. Si je ne trouve pas, je ne mets rien.


C'est bien ce que doit faire la macro qui doit être copiée dans ta feuille du classeur Products après avoir lancé VBA editor par Alt + F11.

Si tu as des soucis, joints ton fichier Products (ou un petit bout : 5 lignes suffisent) pour que je te fasse voir la mise en place de la macro
bon test.
 
Dernière édition:

cephalotus

XLDnaute Occasionnel
Re : Comparer des colonnes de classeurs différents puis coller des infos !!!

rebonsoir, tout le monde, gbinforme,

Le débloqueur me dit "erreur d'excusion "6" dépassement de capacité" ??

En effet, mon fichier fait plus de 65000 lignes. J'ai tenter de changer le nombre de ligne (voir ci-dessous) mais cela ne fontionne pas mieux !!

Option Explicit Public Sub recherche() Dim k As Integer Dim l As Integer Sheets.Add.Name = "mano" Windows("DTS.xlsx").Activate Sheets(1).Cells.Copy Windows("Products.csv").Activate ActiveSheet.Paste Application.CutCopyMode = False Sheets(2).Activate For l = 1 To Cells(65536 à dit:
Merci pour ta réponse.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 348
Membres
103 822
dernier inscrit
kader55