Macro impression automatique à un jour et une heure donnée sur Excel

pascojulien Messages postés 2 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 17 avril 2008 - 16 avril 2008 à 00:43
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 17 avril 2008 à 23:44
Bonjour,

J'ai crée un fichier Excel, et j'aimerai que celui-ci s'imprime automatiquement tout les lundi à 10H je pense que l'on peut faire sa pas la mise en place d'une macro, mais je ne sais pas du tout comment faire cette macro est ce que quelqu'un peut m'aider?

Voici le code: mais pour lancer une impression à une heure donnée

Sub ProgrammeLaMacroTime()
' lance MacroImpression à 10h00 heures
Application.OnTime TimeValue("10:00:00"), "MacroImpression", , True
End Sub

Sub MacroImpression()
'cette macro imprime la feuille Feuil1
ThisWorkbook.Sheets("Feuil1").PrintOut
End Sub

Merci de votre aide

3 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
16 avril 2008 à 11:41
Si tu utilises ce genre de macro, ça implique que ton fichier doit toujours rester ouvert. Il me semble que le mieux serait de passer par une tâche planifiée dans Windows. Et tu mets ton code d'impression dans Workbook_Open()

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
pascojulien Messages postés 2 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 17 avril 2008
17 avril 2008 à 17:59
Merci pour ton aide donc si j'ai bien compris il  faut que je fasse ça?

Workbook_Open(
Sub ProgrammeLaMacroTime()
' lance MacroImpression à 10h00 heures
Application.OnTime TimeValue("10:00:00"), "MacroImpression", , True
End Sub

Sub MacroImpression()
'cette macro imprime la feuille Feuil1
ThisWorkbook.Sheets("Feuil1").PrintOut
End Sub)

Par contre, le fichier ne sera pas forcémment ouvert... comment faire pour "Il me semble que le mieux serait de passer par une tâche planifiée dans Windows"

Et comment faire pour que cela s'imprime tout les lundi? est ce possible en passant par une tache planifiée?

Cordialemnt,
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
17 avril 2008 à 23:44
Ben, en fait il te suffit d'appeler ta procédure MacroImpression à l'intérieur de l'événement Workbook_Open qui se situe dans ThisWorkbook. Une fois l'impression faite, tu fermes l'application Excel. Ça devrait ressembler à quelque chose comme:

Private Sub Workbook_Open()
    MacroImpression  ' ou Call MacroImpression ()
    Application.Quit   'pour fermer Excel une fois terminé
End Sub

Et tu places ta macro MacroImpression dans un module et la déclares en Public pour qu'elle soit reconnue dans ThisWorkbook.

Tu pourrais aussi jouer avec Application.Visible pour ne pas afficher Excel si ça cause un problème... Mais attend de voir si ça fonctionne sans ça... Il risque tout de même d'y avoir un genre de "flash" qui affiche puis cache Excel.

Private Sub Workbook_Open()
    Application.Visible = False
    MacroImpression
    Application.Visible = True

    Application.Quit
End Sub

Je n'ai pas testé, par contre...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0