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
Partager