Comparer deux feuilles et insérer les occurences dans une troisième
Bonjour le forum,
Je voudrais créer une macro qui compare deux listes, dans deux feuilles séparées, et que lorsque il y a occurrence, les données soient reprises dans la troisième feuille.
La première feuille correspond au score des joueurs à J-1, la seconde liste , le score du jour.
Chaque feuille contient le nom du joueur (colonne A) son nombre de points(colonne B) ,son état (colonne C), sa distance (colonne D), son alliance(colonne D).
En gros, ce que je voudrai :
Si joueur existe dans colonne A de la feuille1 et dans la colonne A de la feuille 2, alors on le reporte dans la feuille trois.
J'ai bricolé un code pour la macro, mais quand je veux la lancer j'ai une erreur de boucle with ou variable non définie . Je suis donc mal parti :)
Quelqu'un aurait-il une idée sur le problème?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
Sub comparer_score()
Dim ancien_classement As Worksheet, classement_actuel As Worksheet, resultat As Worksheet, a, b 'Je déclare mes feuilles pour pouvoir manipuler leur contenu
list1 = ancien_classement.Range("A").End(xlDown).Row'list1 correspond à la colonne A de la 1ere feuille(ancien classement)
list2 = classement_actuel.Range("A").End(xlDown).Row'list2 correspond à la colonne de la feuille2 (classement actuel)
list3 = resultat.Range("A").End(xlDown).Row'list3 me servira à comparer les scores
For a = 1 To list1
For b = 1 To list2
If ancien_classement.Range("A" & a).Value = classement_actuel.Range("A" & a).Value Then'Si le om du joueur apparaît dans les colonnes A des deux premières feuilles
resultat.Range("A" & a).Value = classement_actuel.Range("A" & b).Value'On affecte le nom du joueur dans la colonne A de la feuille 3
resultat.Range("B" & a).Value = ancien_classement.Range("B" & a).Value'On affecte a la colonne B de la feuille 3 l'ancien nombre de points du joueur
resultat.Range("C" & a).Value = classement_actuel.Range("C" & b).Value
resultat.Range("D" & a).Value = classement_actuel.Range("D" & b).Value
resultat.Range("E" & a).Value = classement_actuel.Range("B" & b).Value
End If
Next
Next
End Sub |
J'ai un soucis, j'ai un message d'erreur qui apparaît :
Variable objet ou variable de bloc with non définie.
Auriez vous au moins une piste à me conseiller ?
Merci pour votre aide.
Newbie_vba.