Besoin d’aide, svp !
J’ai sur 2 onglets des données : certaines sont identiques, d’autres non.
Mon besoin est d’avoir sur un 3ème onglet , les valeurs communes (sachant qu 'il faut combiner 2 cellules / à savoir : code et lot) des 2 premiers onglets.
J’espère être claire, cf fichier jointDR EXCEL.xlsx (10,1 Ko)
Option Explicit
Sub Communs()
'déclaration des variables
Dim F1 As Worksheet, F2 As Worksheet, F3 As Worksheet
Dim MonDico1, MonDico2, c, tmp, lig As Long, Col1%
'initialisation des variables
Set F1 = Sheets("CAS 1")
Set F2 = Sheets("CAS 2")
Set F3 = Sheets("RESULTATS")
Set MonDico1 = CreateObject("Scripting.Dictionary")
'boucle sur toute les lignes non vide de la colonne A de la feuille F1 à partie de la ligne 2
For Each c In F1.Range("A2:A" & F1.[A1048576].End(xlUp).Row)
'place en mémoire les données de la colonne A et C
MonDico1(c & " " & c.Offset(, 2)) = c.Row
Next c
Set MonDico2 = CreateObject("Scripting.Dictionary")
'boucle sur toute les lignes non vide de la colonne A de la feuille F2 à partie de la ligne 2
For Each c In F2.Range("A2:A" & F2.[A1048576].End(xlUp).Row)
'place en mémoire les données de la colonne A et C
tmp = c & " " & c.Offset(, 2)
'compare sur les deux dictionnaire si des données sont identiques et les place les lignes en mémoire
If MonDico1.exists(tmp) Then If Not MonDico2.exists(tmp) Then MonDico2(tmp) = c.Row
Next c
Col1 = F1.[A1].CurrentRegion.Columns.Count 'Nb de colonne à reporter (compte les colonnes de la ligne 1)
lig = 2
For Each c In MonDico2
'boucle pour renseigner les données en doublons et les placer dans la feuille F3 à partir ligne 2
F1.Cells(MonDico1(c), 1).Resize(, Col1).Copy F3.Cells(lig, 1)
lig = lig + 1 'se déplace d'une ligne
Next c
End Sub