Bonsoir à tous,
Voici quelques heures que je m'épuise sur ce bout de code sans trouver la solution.
Mon problème est le suivant. J'ai des données dans 2 feuilles différentes et je voudrais comparer les données de la plage de la feuille 1 avec les données de la plage de la feuille 2. La plage peut être variable que ce soit dans l'une ou l'autre feuille.
Le test consiste à comparer chaque ligne de ces plages et si une valeur est différente la copier sur une troisième feuille;
J'ai écrit ce code mais il ne fonctionne pas
Le code de la fonction est celui ci :
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 Sub compare() Worksheets("comparaisonBalN").Activate Dim cellule As Range Dim y_comparaison As Integer Dim range_2007, range_2008 As String range_2007 = "A11:A" & calcMaxRow("BalanceN-1") range_2008 = "A11:A" & calcMaxRow("BalanceN") y_comparaison = 5 For Each cellule In Worksheets("balanceN").Range(range_2008) If cellule.Value <> Worksheets("balanceN-1").Range(range_2007).Value Then Worksheets("comparaisonBalN").Cells(y_comparaison, 1).Value = Worksheets("comparaisonBalanceN-1").Range(range_2007).Value End If Next cellule End sub
Si une personne bienveillante peut venir me secourir je l'en remercie vivement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Function calcMaxRow(une_feuille As String) 'Fonction qui affiche toutes les cellules non vides Dim y As Integer y = 11 Do While Sheets(une_feuille).Cells(y, 1) <> "" y = y + 1 Loop calcMaxRow = y - 1 End Function
Bonne soirée
Partager