Bonjour j'ai une erreur dans une boucle, je pense que je demande un calcul trop compliqué mais je ne suis pas sur et je n'arrive pas à le simplifier...
Je vous explique la tâche que j'ai à réaliser :
- j'ai 2 fichier avec une clé et des chiffres par semaine
- j'ai collé les 2 fichiers bout à bout en les séparant par une ligne vide
- je cherche dans un premier temps à connaitre les différences entre les 2 listes de clés qui sont sensées être identiques
Voici mon code que j'ai fait pour trouver les différences et me les lister, ce code ne marche pas...
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Sub test2() Dim cle1 As Variant Dim cle2 As Variant Dim i As Long 'lignes premier tableau Dim j As Long 'lignes deuxieme tableau Dim k As Long 'colonnes Dim l As Long 'lignes liste réponse Dim ok As String i = 2 j = 2486 k = 7 l = 4951 While Cells(i, 1).Value <> "" rep = Cells(i, 1).Value While ok <> "ok" Or Cells(j, 1).Value = "" If Cells(j, 1).Value = rep Then ok = "ok" Else: j = j + 1 End If Wend If ok <> ok Then Cells(l, 1) = rep l = l + 1 End If ok = "" i = i + 1 Wend End Sub
J'ai aussi essayé de tout faire d'un coup mais même résultat
Du coup je pense que la méthode à suivre serait de chercher dans un premier temps la liste des lignes qui ne correspondent pas et ensuite un deuxième code pour voir quelles sont les colonnes qui ne fonctionnent pas.
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Sub test() Dim cle1 As Variant Dim cle2 As Variant Dim i As Long 'lignes premier tableau Dim j As Long 'lignes deuxieme tableau Dim k As Long 'colonnes Dim l As Long 'lignes liste réponse i = 2 j = 2486 k = 7 l = 4951 Do cle1 = Cells(i, 1).Value Do cle2 = Cells(j, 1).Value If cle1 = cle2 Then Do rep1 = Cells(i, k).Value rep2 = Cells(i, k).Value If rep1 <> rep2 Then Cells(l, 1).Value = cle1 Cells(l, 2).Value = cle2 l = l + 1 End If Loop Until k = 149 End If j = j + 1 Loop Until j = 4950 i = i + 1 Loop Until i = 2484 End Sub
Si vous avez une idée ou des suggestions pour une autre méthode...
Merci d'avance
Partager