Comparer les données de deux feuilles excel

Tempio

XLDnaute Occasionnel
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 :

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 :

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 'ceci aussi donne une erreure


En fait il ya 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. Merci d'avance ...

End If
 

YANN-56

XLDnaute Barbatruc
Re : Comparer les données de deux feuilles excel

Bonjour Tempio, et à ceux qui passeront par ici,

J'ai bien une idée!

Mais je n'ai pas envie de me farcir la création d'une base de données pour tester.:mad:
(Je ne suis pas assez doué pour lire les codes brut de brut)

Alors, si tu as le temps de la fournir, je me ferai un plaisir. :)

Amicalement.

Yann
 

Tempio

XLDnaute Occasionnel
Re : Comparer les données de deux feuilles excel

Salut YANN, en fait je suis déjà bien avancé dans mon appli avec un script fonctionnel mais c'est cette dernière requette qui pause problème. du coup, tu comprends que j'ai besoin d'une proposition allant dans le même sens que ce que je propose plus haut svp. J'arrive pas à trouver la bonne synthaxe de cette ligne :

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.
 

YANN-56

XLDnaute Barbatruc
Re : Comparer les données de deux feuilles excel

Re,

Je ne vais pas pouvoir aller plus loin.

Je t'ai proposé de t'aider sous réserve d'avoir un Fichier sur lequel travailler. (En vain)

Les "Offset" n'étant pas de mon langage courant, je ne pourrai donc pas t'aider.

Mais il est bien aussi d'être tenace, et de poursuivre ses idées. :)

Bonne réussite à toi.
(Il y a ici nombre de compétents pouvant t'aider en la matière)

Amicalement,

Yann
 

Tempio

XLDnaute Occasionnel
Re : Comparer les données de deux feuilles excel

Merci de ton soutien mais je vais continuer de chercher quand même. J'espère seulement que ces crack de VBA feront un tour par ici et qu'ils veront mon signal de détressse lol. Porte toi bien et bonne journée.
 

Tempio

XLDnaute Occasionnel
Re : Comparer les données de deux feuilles excel

ok, je joins un fichier qui explique exactement mon problème.
 

Pièces jointes

  • Test.xls
    54.5 KB · Affichages: 142
  • Test.xls
    54.5 KB · Affichages: 147
  • Test.xls
    54.5 KB · Affichages: 148
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Comparer les données de deux feuilles excel

Bonjour Bebere, Tempio, et à ceux qui passeront par ici,

Merci pour ton intervention. J'apprécie! :)

Il est disponible il me semble

Tu l'as bien compris.........

A lui de jouer, s'il ne veut pas que son "Signal de détresse" épuise ses batteries. :confused:

Amicalement

Yann

Tempio: Je découvre seulement, en l'instant, ton dernier Post. A plus tard.
 
Dernière édition:

Fo_rum

XLDnaute Accro
Re : Comparer les données de deux feuilles excel

Bonjour,

sans aller plus loin, tu as
For Each z1 In zone1 'chaque fois qu'un "nouveau" n'est pas dans la liste des "anciens"
If Not liste.exists(z1.Value) Then ' c'est ici qu'on compare les nouveaux aux anciens (le fichier nouveau et comparé à la liste créee en zone2).
...

'If z2.Offset(0, 6) = "01" And z1.Offset(0, 8) = "11" Then deptgi = deptgi + 1 'ceci ne passe pas
et pour cause : comment est initialisée z2 ?
Ne manquerait-il pas un For each z2... ?
 

Tempio

XLDnaute Occasionnel
Re : Comparer les données de deux feuilles excel

Salut Fo_rum, le script plus haut n'était pas complet (celui que t'as copié). J'imagine que t'as pas vu le fichier que j'ai joins. tout le script y est et avec les explications. Ce serait cool si tu pouvais y jeter un oeil au cas ou t'aurais du temps. A+ Voici le fichier modifier et plus explicite :
 

Pièces jointes

  • Test.xls
    50.5 KB · Affichages: 124
  • Test.xls
    50.5 KB · Affichages: 130
  • Test.xls
    50.5 KB · Affichages: 128
Dernière édition:

Tempio

XLDnaute Occasionnel
Re : Comparer les données de deux feuilles excel

Salut à tous, je crois que Sousou vient de m'aider à régler le problème. Il fallait en effet imbriquer les boucles et faire un test : Voici le code qu'il m'a proposé et que j'ai adapté :

For Each z2 In zone2
For Each z1 In zone1
If z1 = z2 Then ' c'est ici qu'on calcul les départs en TGI.

If z1.Offset(0, 3) = "CDI" And z2.Offset(0, 3) = "CDD" Then deptgi = deptgi + 1

End If
Next z1
Next z2
 

Tempio

XLDnaute Occasionnel
Re : Comparer les données de deux feuilles excel

La solution est bonne sauf que pour comparer deux feuilles de calculs qui on plus de 500 enregistrements, ça rame un bon moment quand même. Serait-ce possible d'aller plus vite svp ? Sinon c'est déjà un bon début et entre temps je continue de chercher aussi.
 

YANN-56

XLDnaute Barbatruc
Re : Comparer les données de deux feuilles excel

Bonjour, Bebere si tu passes par ici, Fo_rum, et à ceux qui passeront par là, (Et ri et ra)

Voici une autre façon de faire jointe.

Pour ce qui est des "ATHQ" passant en "ATS" et "CDD" passant en "CDI" (Chose rare!),
si j'ai bien compris ce n'est qu'une affaire de calcul dans ta feuille; que tu sauras faire.

Si cette méthode te convient, nous pourrons peaufiner.

Amicalement, et à te lire.

Yann

P.S. Fo_rum: De qui parles-tu? :)
Ne voyant pas la proposition de Sousou, je suppose qu'il te l'a faite parvenir par MP.

De mon coté; voici un grand morceau de temps que je tente de me connecter.
(La brousse c'est bien, mais pour l'ADSL, c'est pas terrible!)
 

Pièces jointes

  • EFFECTIFS.xls
    37.5 KB · Affichages: 159
  • EFFECTIFS.xls
    37.5 KB · Affichages: 163
  • EFFECTIFS.xls
    37.5 KB · Affichages: 172

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87