Salut à tous, j'ai un problème avec le script que j'utilise pour comparer les données de 2 feuilles Excel d'un même classeur. En fait je constitue une liste qui me recupère les données de la 1ere feuille et je veux comparer les données de la 2e feuille à celle de la liste. Voici le script :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
With Sheets("Nouveau")
Set zone1 = .Range(.Cells(2, 1), .Cells(.Range("A" & Application.Rows.Count).End(xlUp).Row, 1))
End With
 
With Sheets("Ancien")
Set zone2 = .Range(.Cells(2, 1), .Cells(.Range("A" & Application.Rows.Count).End(xlUp).Row, 1))
End With
 
For Each z2 In zone2 'constitution d'une liste sans doublons des "Anciens"
If Not liste.exists(z2.Value) Then liste(z2.Value) = z2.Value 'on crée une liste avec le fichier ancien.
Next z2
Maintenant j'aimerais pouvoir faire compiler ceci qui ne fonctionne pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
If liste.exists(z1.Value) Then ' c'est ici qu'on calcul les départs en TGI.
 
'If z2.Offset(0, 6) = "01" And z1.Offset(0, 8) = "11" Then deptgi = deptgi + 1 ceci passe pas
If z1.Offset(0, 8) = "11" And liste(z2.Offset(0, 6)) = "01" Then deptgi = deptgi + 1 End If
Ceci aussi donne une erreur

En fait il y a des personnes de ma 1ere feuille (Ancien) qui avaient le code "01" pour qui se code est devenu "11" dans la seconde feuille (Nouveau). Il faut noter aussi qu'il n'ya pas de doublons dans mes données.

J'arrive pas à trouver la bonne synthaxe de cette ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
If z1.Offset(0, 8) = "11" And liste(z2.Offset(0, 6)) = "01" Then deptgi = deptgi + 1
Il ya erreur à ce niveau : liste(z2.Offset(0, 6)) = "01" En fait j'aimerais vérifier que la donnée se trouvant à la colonne 8 de la feuille Nouveau est 11 et qu'elle a pour valeur 01 dans la feuille Ancien dans la colonne 6. Si c'est le cas, alors j'incrémente "deptgi".

J'espère avoir été claire sur mon erreur, Merci encore.