Correspondance entre les colonnes

Bonjour,

J'ai deux classeurs : classeur1 et classeur2

Dans le classeur1 (Feuille Active)

Colonne B (à partir de B6) :

AA

BD

CA

DD

Dans le classeur2(feuil1)

Colonne K (à partir de K2)

EE

FQ

TT

KK

AA

RR

CA

BD

DD

HH

Je souhaiterais ajouter (créer une Macro qui permet d'ajouter) dans le classeur1 (Feuille Active).Colonne B à partir du classeur2(feuil1).Colonne K : les textes qui ne sont pas présents.

Merci

Bonjour et sur le forum

Pourquoi t'embêter avec une macro? tu peux copier toute ta colonne K dans la colonne B de ton classeur actif, puis supprimer les lignes qui sont en doublon avec l'onglet "Données" et la fonction "Supprimer les doublons" (choisir d'étendre la sélection et ne cocher que la colonne B), ça gardera la première ligne qui contient le texte, et supprimera toutes celles qui suivent et qui contiennent le même texte en colonne B.

C'est un exemple que j'ai créé pour vous. Dans mon fichier il y a une plus de 60 000 lignes. Je suis en train d'optimiser la procédure avec une seule Macro.

Sub Macro()

With ThisWorkbook

Workbooks.Open ("D:\Fichiers_Partages\Gestion\Classeur2.xlsx")

Range("I:L,N:N,P:W").Select

Selection.Delete Shift:=xlToLeft

For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row

If Cells(i, "D") = 2 Then

Cells(i, "K").Value = Format(Cells(i, "B"), "00") & "." & Format(Cells(i, "D"), "0000") & "." & Format(Cells(i, "E"), "00") & "." & Format(Cells(i, "F"), "00")

Else

Cells(i, "K").Value = Format(Cells(i, "B"), "00") & "." & Format(Cells(i, "C"), "0000") & "." & Format(Cells(i, "E"), "00") & "." & Format(Cells(i, "F"), "00")

End If

Next i

Windows("Classeur1.xlsx").Activate

Range("B6").Select

Ici je suis coincé

Re,

Hum je peux te donner une piste si tu le souhaites (coder sans fichier j'ai vraiment du mal...), un moyen de vérifier qu'une valeur existe déjà dans le fichier actif:

Tu enregistres chaque valeur dans un objet de type Dictionary (Référence = Microsoft Scripting Runtime)

Pour les ajouter tu fais par exemple:

Sub test()
Dim dico As Dictionary 'si tu ne veux pas devoir chercher la référence, mets set dico = createobject("Scripting.Dictionary")
dico.Add CStr(valeur), valeur 'clé , item
dico.Exists CStr(valeur) 'clé, renvoie vrai si un élément se trouve à cette clé
End Sub

Il ne te resterait qu'à vérifier que la valeur n'existe pas dans le dictionnaire pour l'ajouter à classeur actif

Rechercher des sujets similaires à "correspondance entre colonnes"