Bonjour,

J'ai un problème avec un code VBA et je me retourne la tête depuis 2 heures dessus.
Voici ma problématique :
J'ai deux tableaux excel, un en feuille A et un en feuille B, je veux comparer ces deux tableaux ligne à ligne et observer les différences, puis mapper ces différences dans le troisième onglet en précisant si ce sont des éléments "partis" ou "nouveaux".
J'ai choisi comme méthode de concaténer toutes mes colonnes du tableau en une afin de n'avoir qu'à effectuer une rechercheV.

Sur la concaténation pas de problème, par contre sur la rechercheV, j'ai sans cesse un message d'erreur : j'ai extrait la partie du code en question (la voici ci-dessous) :

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
Sub DD()
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
Dim fincolonneA As Integer
Dim fincolonneB As Integer
Dim finligneA As Integer
Dim finligneB As Integer
Dim ColA As Integer
Dim ColConcB As Variant
Dim B As String
 
Set Ws1 = Worksheets("Feuil1")
Set Ws2 = Worksheets("Feuil2")
fincolonneA = Feuil1.Cells(1, Columns.Count).End(xlToLeft).Column + 1
fincolonneB = Feuil2.Cells(1, Columns.Count).End(xlToLeft).Column + 1
finligneA = Ws1.Range("A" & Rows.Count).End(xlUp).Row
finligneB = Ws2.Range("A" & Rows.Count).End(xlUp).Row
ColA = fincolonneA + 1
B = Cells(1, fincolonneA).Value
 
Ws2.Activate
ColConcB = Ws2.Range(Cells(1, fincolonneB), Cells(finligneB, fincolonneB))
 
ValeurA = Application.WorksheetFunction.VLookup("B", ColConcB, 1, False)
Ws1.Range(Cells(2, ColA)).Value = ValeurA
Range(Cells(2, ColA)).AutoFill Destination:=Range(Cells(2, ColA), Cells(finligneA, ColA))
 
End Sub

Si vous pouviez m'aider je vous en serais très reconnaissant.
D'avance merci,

Xcit