Bonsoir
J'utilise la Méthode Find Pour voir si un argument existe dans ma feuille de calcule (Colonne B)
Voici mon code
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é
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
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:
Cordialement Eric
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
Partager