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
| Option Explicit
Private O As Object 'déclare la variable O (Onglet)
Private DL As Integer 'déclare la variable DL (Dernière Ligne)
Private PL As Range 'déclare la variable PL (PLage)
Dim Lheure As Double
Dim Interval As Integer
Public Sub ArretTimer() 'Pour arrêter le timer, il suffit d'appeler cette procédure.
On Error Resume Next
Application.OnTime Lheure, "ExecutionTimer", , False
End Sub
Public Sub ExecutionTimer()
'Pour cette exemple, le code est exécuté toutes les minutes.
MonCountIf2
Lheure = Now + TimeSerial(0, 1, 0)
Application.OnTime Lheure, "ExecutionTimer"
End Sub
Sub MonCountIf2()
'
Set O = Sheets(1) 'définit l'onglet O
DL = O.Cells(Application.Rows.Count, 10).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 10 (=J) de l'onglet O(=Sheet1)
Set PL = O.Range("AA7:A" & DL) 'définit la palge PL
Application.ScreenUpdating = False
On Error Resume Next 'Comme le fichier est nouveau, au cas où il n'y a pas toutes les conditions du filtre, ne pas générer d'erreur à cause de ça.
MsgBox Application.UserName & "," & vbCr & vbCr & Chr(149) & "There is " & WorksheetFunction.CountIf(PL, "Overdue") & _
" Overdue : Prazo de pagament jà passou!" & vbCr & Chr(149) & "There is " & WorksheetFunction.CountIf(PL, "Due") & _
" Due : Por pagar hoje!" & vbCr & Chr(149) & "There is " & WorksheetFunction.CountIf(PL, "Will be due") & _
" Will Due : Por pagar esta semana" & vbCr & vbCr & Chr(149) & "There is " & WorksheetFunction.CountIf(PL, "Paid") & _
" Paid : Pagamento já feito", vbInformation, _
"Contas a pagar."
Application.ScreenUpdating = True
End Sub |
Partager