Bonsoir

J'utilise la Méthode Find Pour voir si un argument existe dans ma feuille de calcule (Colonne B)

Voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Set Cell_Test = Range("B12:B10000").Find(Concat, LookAt:=xlWhole) '
If Cell_Test Is Nothing Then
Si il ne trouve pas de valeur il écrit en dernière ligne / Si il trouve la valeur il écrit sur la ligne désigné

Or si je quitte excel, que je relance mon application, tout fonctionne
Si j’exécute le code plusieurs fois, il ne trouve plus la valeur alors qu'elle est bien présente

J'ai essayer de réinitialiser la variable "Cell_Test" avec = Nothing mais cela ne change rien

Si quelqu'un avais une piste

Le code complet:
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
 
Sub Enreg()
 
Worksheets("Ser_Pont").Select
 
' Date
Dim Dat As Date
Dim Concat As Long
' Pont
Dim Ref_Pont As Variant
Dim OF_Pont As Variant
Dim Ind_Pont As Variant
'Cuve
Dim Ref_Cuve As Variant
Dim OF_Cuve As Variant
Dim Ind_Cuve As Variant
' Trompettes
Dim Ref_Tr As Variant
Dim OF_Tr_G As Variant
Dim Ind_Tr_G As Variant
Dim OF_Tr_D As Variant
Dim Ind_Tr_D As Variant
 
Dim Remplit As Variant
 
Dim Puiss_G As Integer
Dim Puiss_D As Integer
Dim Cote_G As Variant
Dim Cote_D As Variant
Dim NB_Em As Integer
 
 
Remplit = Range("N20").Value
Dat = Range("C5").Value
Concat = Range("K1").Value
 
Ref_Pont = Range("G5").Value
OF_Pont = Range("C7").Value
Ind_Pont = Range("G7").Value
 
Ref_Cuve = Range("C9").Value
OF_Cuve = Range("C11").Value
Ind_Cuve = Range("G11").Value
 
Ref_Tr = Range("C15").Value
 
OF_Tr_G = Range("C20").Value
Ind_Tr_G = Range("C21").Value
OF_Tr_D = Range("G20").Value
Ind_Tr_D = Range("G21").Value
 
 
Puiss_G = Range("C23").Value
Puiss_D = Range("G23").Value
Cote_G = Range("D25").Value
Cote_D = Range("H25").Value
 
 
 
 
If Remplit <> 1 Then
MsgBox "Saisissez les données!!", vbOKOnly + vbCritical, "Information"
Exit Sub
Else
 
'_________________________________________________
 
 
Worksheets("Archives").Select
 
'Dé-protection de la feuille
Dim MDP As Variant
MDP = Worksheets("Admin").Range("C7").Value
Sheets("Archives").Unprotect Password:=MDP
 
Dim Cell_Test As Range
Dim numéro As Long
numéro = Concat
Dim ligne As Integer
ligne = 0
Set Cell_Test = Nothing
 
Set Cell_Test = Range("B12:B10000").Find(Concat, LookAt:=xlWhole) '
 
 
 
 
If Cell_Test Is Nothing Then
 
'----------------Pas de valeur trouvé-----------------------
Dim celluletrouvee As Range
numéro = 0
 
Set celluletrouvee = Range("B11:B10000").Find(numero, LookIn:=xlValues)
 
ligne = celluletrouvee.Row
'Chercher la dernière ligne et coller les valeurs
Set Maplage = Range("B" & ligne & ":B" & ligne)
        Maplage.Select
        Range("B" & ligne & ":B" & ligne).Value = Concat
        Range("C" & ligne & ":C" & ligne).Value = Dat
 
        Range("D" & ligne & ":D" & ligne).Value = Ref_Pont
        Range("E" & ligne & ":E" & ligne).Value = OF_Pont
        Range("F" & ligne & ":F" & ligne).Value = Ind_Pont
 
        Range("G" & ligne & ":G" & ligne).Value = Ref_Cuve
        Range("H" & ligne & ":H" & ligne).Value = OF_Cuve
        Range("I" & ligne & ":I" & ligne).Value = Ind_Cuve
 
        Range("J" & ligne & ":J" & ligne).Value = Ref_Tr
 
        Range("K" & ligne & ":K" & ligne).Value = OF_Tr_G
        Range("L" & ligne & ":L" & ligne).Value = Ind_Tr_G
 
        Range("M" & ligne & ":M" & ligne).Value = OF_Tr_D
        Range("N" & ligne & ":N" & ligne).Value = Ind_Tr_D
 
 
Else
'--------------------------Valeur trouver-----------------
ligne = Cell_Test.Row
 
If MsgBox("Souhaitez vous écraser les valeurs existantes ?", vbYesNo, "Demande de confirmation") = vbYes Then
'Selection de la ligne et coller les valeurs
        Range("B" & ligne & ":B" & ligne).Value = Concat
        Range("C" & ligne & ":C" & ligne).Value = Dat
 
        Range("D" & ligne & ":D" & ligne).Value = Ref_Pont
        Range("E" & ligne & ":E" & ligne).Value = OF_Pont
        Range("F" & ligne & ":F" & ligne).Value = Ind_Pont
 
        Range("G" & ligne & ":G" & ligne).Value = Ref_Cuve
        Range("H" & ligne & ":H" & ligne).Value = OF_Cuve
        Range("I" & ligne & ":I" & ligne).Value = Ind_Cuve
 
        Range("J" & ligne & ":J" & ligne).Value = Ref_Tr
 
        Range("K" & ligne & ":K" & ligne).Value = OF_Tr_G
        Range("L" & ligne & ":L" & ligne).Value = Ind_Tr_G
 
        Range("M" & ligne & ":M" & ligne).Value = OF_Tr_D
        Range("N" & ligne & ":N" & ligne).Value = Ind_Tr_D
 
 
 
'If MsgBox("Souhaitez retourner sur la feuille de saisie?", vbYesNo, "Demande de confirmation") = vbYes Then
'Worksheets("Ser_Pont").Select
End If
End If
End If
'End If
If MsgBox("Souhaitez retourner sur la feuille de saisie?", vbYesNo + vbQuestion, "Demande de confirmation") = vbYes Then
Worksheets("Ser_Pont").Select
End If
 
'Vidage des variables
Dat = Empty
Concat = Empty
Ref_Pont = Empty
OF_Pont = Empty
Ind_Pont = Empty
 
Ref_Cuve = Empty
OF_Cuve = Empty
Ind_Cuve = Empty
 
Ref_Tr = Empty
 
OF_Tr_G = Empty
Ind_Tr_G = Empty
OF_Tr_D = Empty
Ind_Tr_D = Empty
 
 Set Cell_Test = Nothing
 
 
 
'Cell_Test = Nothing
'celluletrouvee = Nothing
numéro = Empty
Sheets("Archives").Protect Password:=MDP
 
MDP = Empty
End Sub
Cordialement Eric