Mettre en pause 1h ma macro après son exécution
@Galopin
Le
Option Explicit
est nécessaire ?
Avec le point d'arret posé, une valeur ajouté dans la colonne E, je n'arrive pas à activer le debogage (compilation OK).
Peut-etre un point important: les valeurs qui s'affichent dans ma colonne E proviennent de formules. Cela a-il un impact ?
@X Cellus
Par contre (TpsO6 - TpsO5 = Tps05) > 0.4167 … C'est quoi cette formule avec Tps05 (zéroCinq).
Ma formule c'est TpsO6-TpsO5 > 0.4167 . Pourquoi ce changement.
Une erreur de ma part (1 de plus), merci !
Tu peux créer des fonctions en leur donnant un nom particulier mais cela est différent. Mis à part cette erreur tu as avancé. J'ai vu l'introduction d'une date en O7 qui permettra de pouvoir vérifier un changement de jour pour vider O5. Mais il faudra prévoir de la sauvegarder car O7 est basé sur maintenant (date Jour).
Tout à fait, après c'est du bonus pour visualiser plus aisément je suppose. Le code fonctionne(ra
Bonjour Zouarv,
Ok, pas de souci, cela peut arriver de rajouter un terme sans voir qu'il est en trop puis de corriger ensuite.
Tu l'aurais vu de toute façon mais dans le feu de l'action on manque de recul parfois.
A mon avis tu as presque finis...
Bonne continuation.
Mon dieu... Quelle salade !
Option Explicit n'est pas obligatoire c'est juste conseillé (Car ça oblige à bien déclarer toutes les variables...)
Quand à cette macro finalement elle n'a pas lieu d'être.
Renomme là différemment Sub rosso ou Sub Galopin ou Sub Papillon mais par pitié :
Plus de WorkSheeet_Change et plus de Target....
Au point ou tu en es tu devras aussi supprimer
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("E1:E250"), Target.Value) ' cette range est dans une autre feuille que "Grafico" qui est "Leakage Value"
If xRg Is Nothing Then Exit Sub
Et probablement aussi
On error resume Next
qui n'est qu'une manière de masquer les problèmes.
Moyennant quoi le reste devrait rouler.
Mais bien sur dans ces conditions la macro ne se lancera pas toute seule : Une macro
Private Sub WorkSheeet_Change(Byval Target as Range)
ne se lance toute seule que lorsqu'elle se trouve dans le module de la feuille hôte et quand Target est modifié par l'utilisateur (et non par une formule !)
A+
Je change de direction radicalement pour moi:
Private Sub WorkSheeet_Change()
Dim xRg As Range
Dim Tps05 As Date
Dim Tps06 As Date
For ligne = 1 To Sheets("Leakage value").Range("E1:E400").Rows.Count
Set Col = Sheets("Leakage value").Range("E1:E400" & ligne)
TpsO5 = Sheets("Grafico").Range("O5").Value
TpsO6 = Sheets("Grafico").Range("O6").Value
TpsO6 = TimeValue(Now())
Sheets("Grafico").Range("O7") = TimeValue(Now())
'Set xRg = Intersect(Worksheets("Leakage value").Range("E1:E250"), Target) 'Sans .Value ici !
'If xRg Is Nothing Then Exit Sub
If TpsO5 = "" And Col >= 0.6 And Col <= 0.9 Then Call envoi_mail_giallo
If TpsO5 = "" And Col >= 0.9 And Col <= 1.1 Then Call envoi_mail_arancia
If TpsO5 = "" And Col > 1.1 Then Call envoi_mail_rosso
TpsO5 = TpsO6
If IsNumeric(Col) And TpsO5 <> "" And Col > 1.1 And TpsO6 - TpsO5 > 0.4167 Then
Call envoi_mail_rosso
Else: Exit Sub
End If
Next
End Sub