Comparer 2 colonnes de 2 classeurs diff VBA
Résolu
laurent
-
laurent -
laurent -
Bonjour,
voilà je suis débutant en prog VBA et aujourd'hui je souhaite comparer une colonne d'un classeur B à la colonne du classeur A pour indiquer le nombre de références du classeur B qui n'apparaissent pas dans le classeur A dans une cellule du classeur C.
En espérant avoir été clair :)
j'ai déjà essayé beaucoup de choses sans résultats... ce qui complique la tâche est la comparaison sur des feuilles de classeurs différents je pense
si vous avez une idée
Merci!
voilà je suis débutant en prog VBA et aujourd'hui je souhaite comparer une colonne d'un classeur B à la colonne du classeur A pour indiquer le nombre de références du classeur B qui n'apparaissent pas dans le classeur A dans une cellule du classeur C.
En espérant avoir été clair :)
j'ai déjà essayé beaucoup de choses sans résultats... ce qui complique la tâche est la comparaison sur des feuilles de classeurs différents je pense
si vous avez une idée
Merci!
A voir également:
- Comparer 2 colonnes de 2 classeurs diff VBA
- Supercopier 2 - Télécharger - Gestion de fichiers
- Faire 2 colonnes sur word - Guide
- 2 ecran pc - Guide
- Word numéro de page 1/2 - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
4 réponses
Bonjour,
Tu peux t'inspirer de ce code de Boisgontier : http://boisgontierjacques.free.fr/pages_site/Dictionnaire.htm#ComparaisonC
Tu peux t'inspirer de ce code de Boisgontier : http://boisgontierjacques.free.fr/pages_site/Dictionnaire.htm#ComparaisonC
Une âme charitable pourrait elle me commenter rapidement ce que j'ai souligné s'il vous plaît. et je ne comprend pas pourquoi les variables ne sont pas déclarés :o
Sub ComparaisonColonne() t = Timer() f = 1 'no feuille Application.ScreenUpdating = False Set MonDico1 = CreateObject("Scripting.Dictionary") Set MonDico2 = CreateObject("Scripting.Dictionary") Workbooks("classeur1.xls").Activate For Each c In Sheets(f).Range("A:D").SpecialCells(xlCellTypeConstants, 23) If Not MonDico1.Exists(c.Value) Then MonDico1.Add c.Value, c.Address Next Workbooks("classeur2.xls").Activate Sheets(f).Activate For Each c In Sheets(f).Range("A:D").SpecialCells(xlCellTypeConstants, 23) If Not MonDico2.Exists(c.Value) Then MonDico2.Add c.Value, c.Address Next Workbooks("classeur1.xls").Activate Sheets(f).Activate For Each e In MonDico1 Range(MonDico1.Item(e)).Font.Color = IIf(MonDico2.Exists(e), vbBlack, vbRed) Next Application.ScreenUpdating = True MsgBox Timer() - t End Sub
Bonjour,
Timer() : https://support.microsoft.com/fr-fr/office/timer-fonction-46da243c-2570-4950-a818-6d6934bf584a?ocmsassetid=ha001228923&correlationid=ae2d1731-dae3-4c25-aa99-758353463263&ui=fr-fr&rs=fr-fr&ad=fr
Application.ScreenUpdating = False : empêche le rafraichissement de l'écran
Set MonDico1 = CreateObject("Scripting.Dictionary") Créé un objet Dictionary : https://support.microsoft.com/fr-fr/help/187234
SpecialCells(xlCellTypeConstants : Les cellules contenant des constantes.
If Not MonDico1.Exists(c.Value) Then MonDico1.Add c.Value, c.Address : Lien déjà donné, t'aurais pu lire.....
Range(MonDico1.Item(e)).Font.Color = IIf(MonDico2.Exists(e), vbBlack, vbRed) Mets en noir (vbBlack) si e exist dans le dictionary (http://boisgontierjacques.free.fr/pages_site/Dictionnaire.htm#SupDoubBD) et en rouge (vbRed) dans le cas contraire, ou l'inverse je ne sais plus...
Timer() : https://support.microsoft.com/fr-fr/office/timer-fonction-46da243c-2570-4950-a818-6d6934bf584a?ocmsassetid=ha001228923&correlationid=ae2d1731-dae3-4c25-aa99-758353463263&ui=fr-fr&rs=fr-fr&ad=fr
Application.ScreenUpdating = False : empêche le rafraichissement de l'écran
Set MonDico1 = CreateObject("Scripting.Dictionary") Créé un objet Dictionary : https://support.microsoft.com/fr-fr/help/187234
SpecialCells(xlCellTypeConstants : Les cellules contenant des constantes.
If Not MonDico1.Exists(c.Value) Then MonDico1.Add c.Value, c.Address : Lien déjà donné, t'aurais pu lire.....
Range(MonDico1.Item(e)).Font.Color = IIf(MonDico2.Exists(e), vbBlack, vbRed) Mets en noir (vbBlack) si e exist dans le dictionary (http://boisgontierjacques.free.fr/pages_site/Dictionnaire.htm#SupDoubBD) et en rouge (vbRed) dans le cas contraire, ou l'inverse je ne sais plus...