OVH Cloud OVH Cloud

lancement macro dernier jour du mois (Ter)

2 réponses
Avatar
sice42
Bonjour,
Il ne reste plus qu'un jour ouvrable dans le mois de Septembre et je
n'arrive toujours pas =E0 trouver une solution pour lancer
automatiquement une macros le dernier jour du mois. j'ai re=E7u des
propositions mes aucunes ne s'adaptent =E0 ce que je veux faire. est ce
que quelqu'un peut me proposer un code clair et pr=E9cis avec les
arguments ...bref un code complet ? ci dessous le code qui me permet de
lancer automatiquement ma macro et auquel je veux rajouter le lancement
le dernier jours du mois :
Private Sub Workbook_Open()

If Application.WorksheetFunction.Weekday(Now, 2) < 6 Then
Application.OnTime TimeValue("08:00:00"), "NewMC"
Else
End If



End Sub

Merci d'avance
Bonne journ=E9=E9 =E0 Tous et =E0 Toute

2 réponses

Avatar
michdenis
Tu ne dois pas être loin de ce que tu cherches avec ceci :

à copier dans le ThisWorkbook de ton classeur,
Cette procédure suppose que ton classeur a été ouvert
expressément la dernière journée ouvré du mois et ce
avant l'heure que tu as spécifié dans ta procédure 8 hres.

Et place ta macro "NewMC" dans un module Standard.

'------------------------------
Private Sub Workbook_Open()

Dim D As Long
'la fonction date() retourne la date du jour
'la formule retourne la dernière journée ouvrée
'du mois

D = Date
If Date = Evaluate("DATE(YEAR(" & D & "),MONTH(" & D _
& ")+1,0)+MIN(0,5-WEEKDAY(DATE(YEAR(" & D & _
"),MONTH(" & D & ")+1,0),2))") Then
Application.OnTime TimeValue("08:00:00"), "NewMC"
End If

End Sub
'------------------------------



a écrit dans le message de news:

Bonjour,
Il ne reste plus qu'un jour ouvrable dans le mois de Septembre et je
n'arrive toujours pas à trouver une solution pour lancer
automatiquement une macros le dernier jour du mois. j'ai reçu des
propositions mes aucunes ne s'adaptent à ce que je veux faire. est ce
que quelqu'un peut me proposer un code clair et précis avec les
arguments ...bref un code complet ? ci dessous le code qui me permet de
lancer automatiquement ma macro et auquel je veux rajouter le lancement
le dernier jours du mois :
Private Sub Workbook_Open()

If Application.WorksheetFunction.Weekday(Now, 2) < 6 Then
Application.OnTime TimeValue("08:00:00"), "NewMC"
Else
End If



End Sub

Merci d'avance
Bonne journéé à Tous et à Toute
Avatar
michdenis
Afin d'éviter de n'avoir à ouvrir ton fichier à tous les jours
pour t'assurer que ta procédure fonctionne, tu peux utiliser
un fichier VBS pour lancer ton fichier à tous les jours en utilisant
le planificateur de tâches de Windows

Dans un notepad, copie ce qui suit en adaptant
A ) le chemin de ton fichier à ouvrir "c:atestmacro.xls"
B ) Assure-toi que le nom de la macro existe bien ...

Dim Xl
dim wk
Set Xl = WScript.CreateObject("EXCEL.application")
Xl.Visible = True ' Place à false après tes tests ...
'L'application devient non visible
Xl.enableeventsúlse
set Wk = Xl.workbooks.open("c:atestmacro.xls")
Xl.Run "MaMacro"
Xl.enableevents=true
xl.save
xl.close

C ) Enregistre ton fichier notepad avec une extension de fichier .vbs au lieu de .txt

D ) Utilises le planificateur de tâches de Windows et demande lui d'exécuter à tous
les jours ton fichiers .vbs que tu viens de créer.
Important : Sélectionne une heure où tu es sûr que ton fichier n'est pas ouvert par un usager
mais que l'ordinateur en question est ouvert !


Dans un module Standard, de ton classeur, tu créées ta macro

'------------------------------
Sub MaMacro()
Dim D As Long
'la fonction date() retourne la date du jour
'la formule retourne la dernière journée ouvrée
'du mois

D = Date ' ou la date que tu désires
If Date = Evaluate("DATE(YEAR(" & D & "),MONTH(" & D _
& ")+1,0)+MIN(0,5-WEEKDAY(DATE(YEAR(" & D & _
"),MONTH(" & D & ")+1,0),2))") Then

'Insère ici le code de la macro NewMC

End If

End Sub
'------------------------------





"michdenis" a écrit dans le message de news:
%
Tu ne dois pas être loin de ce que tu cherches avec ceci :

à copier dans le ThisWorkbook de ton classeur,
Cette procédure suppose que ton classeur a été ouvert
expressément la dernière journée ouvré du mois et ce
avant l'heure que tu as spécifié dans ta procédure 8 hres.

Et place ta macro "NewMC" dans un module Standard.

'------------------------------
Private Sub Workbook_Open()

Dim D As Long
'la fonction date() retourne la date du jour
'la formule retourne la dernière journée ouvrée
'du mois

D = Date
If Date = Evaluate("DATE(YEAR(" & D & "),MONTH(" & D _
& ")+1,0)+MIN(0,5-WEEKDAY(DATE(YEAR(" & D & _
"),MONTH(" & D & ")+1,0),2))") Then
Application.OnTime TimeValue("08:00:00"), "NewMC"
End If

End Sub
'------------------------------



a écrit dans le message de news:

Bonjour,
Il ne reste plus qu'un jour ouvrable dans le mois de Septembre et je
n'arrive toujours pas à trouver une solution pour lancer
automatiquement une macros le dernier jour du mois. j'ai reçu des
propositions mes aucunes ne s'adaptent à ce que je veux faire. est ce
que quelqu'un peut me proposer un code clair et précis avec les
arguments ...bref un code complet ? ci dessous le code qui me permet de
lancer automatiquement ma macro et auquel je veux rajouter le lancement
le dernier jours du mois :
Private Sub Workbook_Open()

If Application.WorksheetFunction.Weekday(Now, 2) < 6 Then
Application.OnTime TimeValue("08:00:00"), "NewMC"
Else
End If



End Sub

Merci d'avance
Bonne journéé à Tous et à Toute