Bonjour à tous,

J'ai 4 valeurs définies dans ma macro (fichier Excel A). Je souhaite chercher ces valeurs dans toutes les feuilles d'un classeur Excel B. Puis, lorsque la macro a trouvé une ligne dans le fichier Excel B avec mes 4 valeurs, faire apparaître un message "Correct".
J'ai essayé plusieurs types de boucles avec Do .. Loop Until ou Do .. Loop ect. Mais cela ne fonctionne pas et je commence à sécher, je commence juste en VBA !
Avec le code ci-dessous, la boucle continue alors qu'il a trouvé mes 4 valeurs... Et lorsque toutes les feuilles ont été vérifiées, un message d'erreur apparaît sur la ligne Loop Until ... "Erreur d'exécution 91 : Variable objet ou variable de bloc With non définie"

Si vous avez des idées ou des corrections, je vous en serai grandement reconnaissante !! Merci !

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
Sub AJOUT_OF()
 
Dim DATE_OF As Date
Dim Feuille As Worksheet
Dim REFERENCE As Variant
Dim OF As Variant
Dim QUANTITE As Variant
Dim REFERENCE_CHECK As Variant
 
'Faire apparaître la fenêtre pour demander les données
UF_DONNEES.Show
 
REFERENCE = UF_DONNEES.TB_REFERENCE.Value
OF = UF_DONNEES.TB_OF.Value
DATE_OF = UF_DONNEES.TB_DATE.Value
QUANTITE = UF_DONNEES.TB_QUANTITE.Value
 
'Vérifier les valeurs dans le classeur des lancements dans T:\LOGISTIQUE
Workbooks.Open Filename:="B:\DONNEES-2020.xlsx", Notify:=False
Do
 
For Each Feuille In ActiveWorkbook.Sheets
Feuille.Activate
 
With Feuille.Range("B:B")
Set REFERENCE_CHECK = .Find(What:=REFERENCE)
End With
 
With Feuille.Range("A:A")
Set OF_CHECK = .Find(What:=OF)
End With
 
With Feuille.Range("F:F")
Set DATE_OF_CHECK = .Find(What:=DATE_OF)
End With
 
With Feuille.Range("E:E")
Set QUANTITE_CHECK = .Find(What:=QUANTITE)
End With
Next Feuille
 
Loop Until REFERENCE_CHECK = REFERENCE And OF_CHECK = OK And DATE_OF_CHECK = DATE_OF And QUANTITE_CHECK = QUANTITE
 
'  MsgBox ("Correct")
End Sub