Bonjour ! Malgré toutes mes recherches, je n'ai pas trouvé de solution à mon problème.. J'espère que vous pourrez m'aider
Je vous explique :
J'ai un fichier "x" contenant plusieurs colonnes et des milliers de lignes, et un fichier y similaire mais mis à jour régulièrement, et il doit mettre à jour le fichier x en fonction des nouvelles données.
Pour faire la comparaison des lignes des deux fichiers (elles sont toutes dans le désordre), je dois prendre 3 critères (colonnes A,B,C par exemple pour les comparer).
J'aimerais faire un tableau en VBA avec en colonne "A" les lignes du fichier "x", et en colonne "B", les lignes correspondantes à celles du fichier "x".
Si, dans le fichier "x", il y a une ligne qui n'a pas de correspondance dans le fichier "y", on va mettre un "?" dans la colonne "B" du tableau.
Exemple :
Ligne_Fichier_x -----------------Ligne_Corespondante_Dans_Le_Fichier_Y
1------------------------------------------------22
2------------------------------------------------125
3------------------------------------------------ ?
4------------------------------------------------12345
5------------------------------------------------55555
Mon code pour l'instant.....
Ca fait depuis hier que je suis bloqué là dessus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 'Pour chaque ligne du x, on regarde si il y a une correspondance dans y Workbooks("x.xlsm").Activate 'Détermine la dernière ligne de la colonne A pour les deux fichiers LigneMaxX = Sheets("Jalons").Range("A65536").End(xlUp).Row Workbooks("EQM_jalons_-_2_mois_bacASable.xlsx").Activate LigneMaxY = Sheets("planEQM_TCR").Range("A65536").End(xlUp).Row '---------DECLARATION DU TABLEAU---------------' Dim tab_ij() As String Dim i As Integer, j As Integer For i = 1 To LigneMaxX valeur = Cells(i, 1) valeur1 = Cells(i, 2) Valeur2 = Cells(i, 3) j = 1 Do While valeur <> Cells(j, 1) Or valeur <> Cells(j, 2) Or valeur <> Cells(j, 3) j = j + 1 If j > LigneMaxY Then Exit Do End If Loop If j = LigneMaxY + 1 Then NumLigne(i) = "x" Next
Si vous voulez plus d'explication, demandez.
Merci d'avance
Partager