Bonjour à tous !
J'ai un soucis avec l'une de mes macros vba, et n'étant pas trop trop un pro, je recquiers votre assistance. D'abord le contexte, puis le code, puis le soucis.
Mon document est un suivi d'une machine minute par minute et le but est, de façon automatisée, de déterminer le temps de démarrage nommé Date2. Cela correspond au temps entre le moment où la vis commence à tourner (valeur dans la colonne E > 300 nommé Date1) et le moment où le second moteur se met en marche (valeur dans la colonne G > 1000). La colonne A correspond à la date et la B au numéro du produit.
Le code maintenant :Le soucis :
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 Sub TpsDemarrage() FinLigne = 9602 NumeroLigne = 2 Dim boolean1 As Boolean boolean1 = False Dim boolean2 As Boolean boolean2 = False Dim boolean3 As Boolean boolean3 = False Dim boolean4 As Boolean boolean4 = False Dim Date1 As Date Dim Date2 As Date While boolean1 = False If NumeroLigne > FinLigne Then boolean1 = True If Range("E" & NumeroLigne).Value > 300 And Range("G" & NumeroLigne).Value < 1000 And boolean2 = False Then Date1 = Range("A" & NumeroLigne).Value And boolean2 = True 'Etape1 Démarrage If Range("E" & NumeroLigne).Value > 300 And Range("G" & NumeroLigne).Value > 1000 And boolean3 = False Then Date2 = Range("A" & NumeroLigne).Value - Date1 And boolean3 = True 'Temps entre l'étape1 et la fin du démarrage If Range("G" & NumeroLigne).Value > 1000 And Range("G" & NumeroLigne - 1).Value < 1000 Then Range("AR" & NumeroLigne).Value = Date2 'Mettre le temps de démarrage à la fin du démarrage If Range("B" & NumeroLigne).Value <> Range("B" & NumeroLigne + 1).Value Then boolean4 = True 'Si on change de produit If boolean4 = True Then Date1 = 0 And Date2 = 0 And boolean2 = boolean3 = boolean4 = False 'Alors on réinitialise tout et on ontinue pour le produit suivant NumeroLigne = NumeroLigne + 1 Wend End Sub
A la ligne 19, j'ai mal exprimé ma variable Date1 et je ne parviens pas à la fixer. Dans ce cas, j'obtiens toujours Date2 = 00:00:00 car Date1 n'est pas fixe.
Si vous avez un quelconque axe d'amélioration envisageable je suis preneur !
Merci beaucoup pour votre aide (ou au moins d'avoir lu)
Partager