Bonjour à tous et à toutes tout d'abord je tient à félicité l'efficacité de ce forum, je ne suis là que depuis seulement une semaine et cela m'a beaucoup aidé seulement après plusieurs recherche sur les centaines de pages de post je me décide à vous exposer mon problème après plusieurs semaines je vais essayé d'etre clair et précis.

Alors voilà je dois comparer plusieurs colonnes entres elles qui se présentent comme ceci :

dans 8 colonnes j'ai plusieurs titres qui sont les suivants :

DON12 DON13 DON14 DON15 ; DON20 DON21 DON22 DON23

Je souhaite comparer les colonnes DON12 à DON20
DON13 à DON21
DON14 à DON22
DON15 à DON21

Sachant que s'il y a un chiffre dans les colonnes DON12,13,14,15 qui est différent de 0 alors dans les colonnes DON20,21,22,23 il doit également y avoir un chiffre pas forcément similaire aux 4 autres colonnes et il ne doit pas y avoir 0, je vais essayé d'illustrer :

DON12 DON20

120.3 23 Alors on affiche Pas D'erreur
0 0 Pas D'erreur
452.1 0 Là il y a une erreur

Voici le code que je m'efforce de faire marcher mais sans succès :

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Sub Comparaison()
 
    Application.ScreenUpdating = False
 
    Dim y As Long
    Dim limite As Long
    Dim x As Long
 
 
    For y = 3 To 65536
    If Cells(y, 1) = "" Then
    limite = y
    Exit For
    End If
 
 
    For x = 3 To y
    If (Cells(x, "DON12" <> 0)) Then
    If (Cells(x, "DON20" <> 0)) Then Cells(x, 33) = "Pas D'Erreur" Else: Cells(x, 33) = "Erreur"
    Else: Cells(x, 33) = "Pas D'Erreur"
 
    End If
 
    Next x
    Next y
 
    For y = 3 To 65536
    If Cells(y, 1) = "" Then
    limite = y
    Exit For
    End If
 
 
    For x = 3 To y
    If (Cells(x, "DON13" <> 0)) Then
    If (Cells(x, "DON21" <> 0)) Then Cells(x, 34) = "Pas D'Erreur" Else: Cells(x, 34) = "Erreur"
    Else: Cells(x, 34) = "Pas D'Erreur"
 
 
    End If
 
    Next x
    Next y
 
    For y = 3 To 65536
    If Cells(y, 1) = "" Then
    limite = y
    Exit For
    End If
 
 
    For x = 3 To y
    If (Cells(x, "DON14" <> 0)) Then
    If (Cells(x, "DON22" <> 0)) Then Cells(x, 35) = "Pas D'Erreur" Else: Cells(x, 35) = "Erreur"
    Else: Cells(x, 35) = "Pas D'Erreur"
 
 
    End If
 
    Next x
    Next y
 
 
    For y = 3 To 65536
    If Cells(y, 1) = "" Then
    limite = y
    Exit For
    End If
 
 
 
    For x = 3 To y
    If (Cells(x, "DON15" <> 0)) Then
    If (Cells(x, "DON23" <> 0)) Then Cells(x, 36) = "Pas D'Erreur" Else: Cells(x, 36) = "Erreur"
    Else: Cells(x, 36) = "Pas D'Erreur"
 
 
    End If
    Next x
    Next y
 
    For y = 3 To 65536
    If Cells(y, 1) = "" Then
    limite = y
    Exit For
    End If
 
    For x = 3 To y
    If ActiveCell.Value = "DON16" <> 0 Then
    Cells(x, 37) = "Pas D'Erreur"
    Else: Cells(x, 37) = "Erreur"
 
    End If
    Next x
    Next y
 
    For y = 3 To 65536
    If Cells(y, 1) = "" Then
    limite = y
    Exit For
    End If
 
    For x = 3 To y
    If ActiveCell.Value = "DON17" <> 0 Then
    Cells(x, 38) = "Pas D'Erreur"
    Else: Cells(x, 38) = "Erreur"
    End If
    Next x
    Next y
 
    For y = 3 To 65536
    If Cells(y, 1) = "" Then
    limite = y
    Exit For
    End If
 
    For x = 3 To y
    If ActiveCell.Value = "DON18" <> 0 Then
    Cells(x, 39) = "Pas D'Erreur"
    Else: Cells(x, 39) = "Erreur"
    End If
    Next x
    Next y
 
    For y = 3 To 65536
    If Cells(y, 1) = "" Then
    limite = y
    Exit For
    End If
 
    For x = 3 To y
    If ActiveCell.Value = "DON19" <> 0 Then
    Cells(x, 40) = "Pas D'Erreur"
    Else: Cells(x, 40) = "Erreur"
    End If
    Next x
    Next y
 
 
   Application.ScreenUpdating = True
 
End Sub
Merci pous vos futurs réponses
Cordialement Jean-Mikaël.