Re : Améliorer un code (comparer deux feuilles d'un classeur)
Salut, je viens également de trouver comment exécuter les autres requetes ci dessus mais j'ai un souci. Lorsque je teste le code avec le fichier Modele2 qui est un exemple, ca passe bien mais lorsque je place le code avec les données réelles, certains resultats s'affichent dans les cellules mais pas d'autres. J'ai bien regarder plusieurs fois mais je ne vois pas ce qui peut être le problème. Il s'agit de pas moins de 400 enregistrements, cela n'est t'il pas dû au nombre d'enregistrements ? Voici le nouveau code :
Sub deb()
Set liste = CreateObject("Scripting.Dictionary")
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
If z2.Offset(0, 12) = "IG" And z2.Offset(0, 8) = "02" Then anciens5 = anciens5 + 1 'compte nouveaux arrivants en classification IG en CDD
If z2.Offset(0, 12) = "IG" And z2.Offset(0, 8) = "01" Then anciens6 = anciens6 + 1 'compte nouveaux arrivants en classification IG en CDI
If z2.Offset(0, 12) = "EO" And z2.Offset(0, 8) = "02" Then anciens7 = anciens7 + 1 'compte nouveaux arrivants en classification EO en CDD
If z2.Offset(0, 12) = "EO" And z2.Offset(0, 8) = "01" Then anciens8 = anciens8 + 1 'compte nouveaux arrivants en classification EO en CDI
If z2.Offset(0, 12) = "ATHQ" And z2.Offset(0, 8) = "02" Then anciens9 = anciens9 + 1 'compte nouveaux arrivants en classification ATHQ en CDD
If z2.Offset(0, 12) = "ATHQ" And z2.Offset(0, 8) = "01" Then anciens10 = anciens10 + 1 'compte nouveaux arrivants en classification ATHQ en CDI
If z2.Offset(0, 12) = "ATS" And z2.Offset(0, 8) = "02" Then anciens11 = anciens11 + 1 'compte nouveaux arrivants en classification ATS en CDD
If z2.Offset(0, 12) = "ATS" And z2.Offset(0, 8) = "01" Then anciens12 = anciens12 + 1 'compte nouveaux arrivants en classification ATS en CDI
Next z2
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
comptenouveau = comptenouveau + 1 'compteur incrémenté
If z1.Offset(0, 12) = "IG" And z1.Offset(0, 8) = "02" Then comptef5 = comptef5 + 1 'compte nouveaux arrivants en classification IG en CDD
If z1.Offset(0, 12) = "IG" And z1.Offset(0, 8) = "01" Then comptef6 = comptef6 + 1 'compte nouveaux arrivants en classification IG en CDI
If z1.Offset(0, 12) = "EO" And z1.Offset(0, 8) = "02" Then comptef7 = comptef7 + 1 'compte nouveaux arrivants en classification EO en CDD
If z1.Offset(0, 12) = "EO" And z1.Offset(0, 8) = "01" Then comptef8 = comptef8 + 1 'compte nouveaux arrivants en classification EO en CDI
If z1.Offset(0, 12) = "ATHQ" And z1.Offset(0, 8) = "02" Then comptef9 = comptef9 + 1 'compte nouveaux arrivants en classification ATHQ en CDD
If z1.Offset(0, 12) = "ATHQ" And z1.Offset(0, 8) = "01" Then comptef10 = comptef10 + 1 'compte nouveaux arrivants en classification ATHQ en CDI
If z1.Offset(0, 12) = "ATS" And z1.Offset(0, 8) = "02" Then comptef11 = comptef11 + 1 'compte nouveaux arrivants en classification ATS en CDD
If z1.Offset(0, 12) = "ATS" And z1.Offset(0, 8) = "01" Then comptef12 = comptef12 + 1 'compte nouveaux arrivants en classification ATS en CDI
End If
Next z1
Sheets("Suivi Effectifs").Range("J7") = anciens5 'compte agents du mois précédants en classification IG en CDD
Sheets("Suivi Effectifs").Range("I7") = anciens6 'compte agents du mois précédants en classification IG en CDI
Sheets("Suivi Effectifs").Range("D7") = anciens7 'compte agents du mois précédants en classification EO en CDD
Sheets("Suivi Effectifs").Range("C7") = anciens8 'compte agents du mois précédants en classification EO en CDI
Sheets("Suivi Effectifs").Range("H7") = anciens9 'compte agents du mois précédants en classification ATHQ en CDD
Sheets("Suivi Effectifs").Range("G7") = anciens10 'compte agents du mois précédants en classification ATHQ en CDI
Sheets("Suivi Effectifs").Range("F7") = anciens11 'compte agents du mois précédants en classification ATS en CDD
Sheets("Suivi Effectifs").Range("E7") = anciens12 'compte agents du mois précédants en classification ATS en CDI
Sheets("Suivi Effectifs").Range("J8") = comptef5 'compte nouveaux arrivants en classification IG en CDD
Sheets("Suivi Effectifs").Range("I8") = comptef6 'compte nouveaux arrivants en classification IG en CDI
Sheets("Suivi Effectifs").Range("D8") = comptef7 'compte nouveaux arrivants en classification EO en CDD
Sheets("Suivi Effectifs").Range("C8") = comptef8 'compte nouveaux arrivants en classification EO en CDI
Sheets("Suivi Effectifs").Range("H8") = comptef9 'compte nouveaux arrivants en classification ATHQ en CDD
Sheets("Suivi Effectifs").Range("G8") = comptef10 'compte nouveaux arrivants en classification ATHQ en CDI
Sheets("Suivi Effectifs").Range("F8") = comptef11 'compte nouveaux arrivants en classification ATS en CDD
Sheets("Suivi Effectifs").Range("E8") = comptef12 'compte nouveaux arrivants en classification ATS en CDI
Sheets("Suivi Effectifs").Range("A9") = zone2.Count - (zone1.Count - comptenouveau) 'compteur du nombre de personnes parties
End Sub