Lancement de macros excel sous MS-DOS

pticop - 18 juil. 2001 à 17:51
cs_yan01 Messages postés 5 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 20 mai 2004 - 20 juin 2003 à 16:31
Bonjour,

Sur 1 serveur NT, je lance tous les matins une dizaine de macros excel. Ces macros sont toutes prêtes, il n'y a qu'a appuyer sur un bouton. Mais cela prend du temps, et je dois vérifier les fichiers excel issus de ces macros.

Sachant que le serveur NT reste allumé jour et nuit,je me demandais s'il n'y avait pas un moyen d'automatiser cela. J'ai une très vague idée du genre; exécuter un script toutes les nuits au moyen de la commande "at", et que ce script contienne un "start d:\repertoire\macro.xls" et ...
COMMENT SIGNALER L'EXECUTION DE LA MACRO DANS LE SCRIPT?

Merci d'avoir lu jusqu'en bas ;)

10 réponses

Ben heu y a person qui peut m'répondre :question)
0
-------------------------------
Réponse au message :
-------------------------------

Ben heu y a person qui peut m'répondre :question)

-------------------------------
Réponse au message :
-------------------------------

Bonjour,

Sur 1 serveur NT, je lance tous les matins une dizaine de macros excel. Ces macros sont toutes prêtes, il n'y a qu'a appuyer sur un bouton. Mais cela prend du temps, et je dois vérifier les fichiers excel issus de ces macros.

Sachant que le serveur NT reste allumé jour et nuit,je me demandais s'il n'y avait pas un moyen d'automatiser cela. J'ai une très vague idée du genre; exécuter un script toutes les nuits au moyen de la commande "at", et que ce script contienne un "start d:\repertoire\macro.xls" et ...
COMMENT SIGNALER L'EXECUTION DE LA MACRO DANS LE SCRIPT?

Merci d'avoir lu jusqu'en bas ;)
0
:-p
0
cs_coxinel Messages postés 1 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 12 mars 2003
12 mars 2003 à 18:13
Bonjour pticop,

j'ai vu que tu avais réglé le problème, je serai intéressé par la solution car j'ai le meme que toi.

merci
laurent
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pticop Messages postés 3 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 10 juin 2003
12 mars 2003 à 19:27
Salut Laurent,

J ai résolu mon problème de la manière suivante :

1) J ai un "at" sur dos qui execute un fichier lancement_macro.cmd

2)dans ce .cmd un fichier excel est appelé, on appellera ce fichier "lancement_macro.xls".
dans le .cmd, ça donnerais par exemple :
c:\scripts\macro_lancement.xls >> :\lancement.log

3)ce dernier fichier excel execute une macro à chaque fois qu on ouvre ce fichier (je ne me souviens plus comment faire ce lancement automatique de macro dès l ouverture de fichier, mais c pas trop compliqué il me semble, faudrait faire une recherche sur le site)

4)dans ce fichier "lancement_macro.xls" se trouvent toutes les macros que tu souhaites executer les unes après les autres.
ça donne par exemple :
Sub macro_lancement()

Application.DisplayAlerts = False 'annule les messages
Application.ScreenUpdating = False 'ne met pas l'écran à jour au fur et à mesure

ChDir "c:\scripts" 'endroit où se troivent les macros
Workbooks.Open FileName:="c:\scripts\Macro test.xls"
Application.Run "'Macro test.xls'!test" 'la macro s appelle test
ActiveWindow.Close

ActiveWindow.Close

'enregistre si fichiers ouverts, puis fermeture d'excel
If Workbooks.Count = 1 Then 'Seul le fichier macro est ouvert !
Application.DisplayAlerts = False
Application.Quit
Else 'L'utilisateur avait ouvert un ou des fichiers avant le fichier macro !
ThisWorkbook.Close savechanges:=False
End If

Voilà ainsi Excel se ferme automatiquement à la fin ainsi que la fenêtre dos.

Si tu as des points sombres n hésite pas.

A+
pticop :big)
0
pticop Messages postés 3 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 10 juin 2003
12 mars 2003 à 19:29
tu as corrigé par toi même, c pas :
c:\scripts\macro_lancement.xls >> :\lancement.log
mais :
c:\scripts\macro_lancement.xls >> c:\lancement.log

hihi
pticop
0
cs_yan01 Messages postés 5 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 20 mai 2004
10 juin 2003 à 15:21
Salut,

Je suis tout nouveau dans le domaine de la prog. Je voulais avoir quelques précisions concernant l'automatisation de tes macros Excel sous DOS :
Je travaille actuellement sur une appli sous Excel, et j'aimerai lancer une macro la nuit pour échanger des lignes de fichiers.

Ma macro fonctionne pour échanger les lignes à transférer entre les fichiers, mais je voulais savoir si tu avais pu lancer les tiennes automatiquement à partir de DOS sous ton serveur NT la nuit.
Si oui, quel genre de script as-tu ecrit pour lancer ta macro à une heure précise? est-ce une commande "at"? comment l'utilises-tu?
Je ne suis pas sûr que ma question corresponde au problème auquel tu as été confronté... même si je l'espère.

Merci d'avance,

Yan
0
pticop Messages postés 3 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 10 juin 2003
10 juin 2003 à 16:54
Salut,

ça fait un bout que j'ai posté ça... :-)

Concrétement, il te faut : une commande "at", un fichier .cmd et un fichier excel dans lequel se trouve une macro qui se déclenche dès l'ouverture du fichier.

On va procéder dans le sens chronologique inverse :

1.Comment faire un fichier excel dans lequel se trouve une macro qui se déclenche dès l'ouverture du fichier?

a. commencer par enregistrer une macro appelée "macro_test" ans un fichier appelé "fichier_test".

b.Ouvrir l'éditeur VBA (Alt + F11)

c. faire apparaître la fenêtre « Project-VBA project » à gauche en cliquant dans le menu sur « affichage » puis « explorateur de projets ». (le cas échéant)

d. Double cliquez sur "ThisWorkbook"

e.Insérez les lignes:

Private Sub Workbook_Open()
fichier_test
End Sub

f.enregistrez ;-)

2.Comment faire et à quoi sert un fichier .cmd?

Ce fichier sert d'intermédiare entre le at et la macro. C'est un fichier avec une extension cmd. Appelons-le intermediaire_test.cmd. Il pointe sur la macro. On a par exemple dans ce fichier :

d:\macro_test.xls >> d:\macro_test.log

où macro_test.log est le fichier enregistrant le déroulement de chaque exécution.

3.Programmer un commande "at"

Sous dos enregistrer une commande "at" (je ne me souviens plus de la syntaxe, consulter l'aide sous dos avec at /?)

Cela afin d'aboutir à une commande du type :

Chaque L M Me J V 05:30 AM d:\intermediaire_test.cmd

Et là, tous les matin des jours ouvrés, à 5h30 du matin, le at appelle le fichier intermediaire_test.cmd qui ouvre à son tour le fichier excel dans lequel se trouve la macro qui se déclenche dès l'ouverture du fichier.

Voili voilou,
J'espère n'avoir rien oublié. Tu me diras.

Pticop
0
cs_yan01 Messages postés 5 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 20 mai 2004
11 juin 2003 à 10:36
Salut,
Je te remercie pour les infos que tu m'as fournies. Je n'ai pas pour le moment eu le temps de les tester car on m'a donner ce matin quelques missions plus urgentes..... je ne manquerai pas de te tenir au courant

Merci encore :-)

Yan
0
cs_yan01 Messages postés 5 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 20 mai 2004
20 juin 2003 à 16:31
Salut Pticop,

Je te remercie pour le "tuyau" que tu m'as passé. J'ai testé cette commande, cela marche impec. Malheureusement, lorsque j'ai voulu le mettre en application sur le réseau de l'entreprise, je n'avais pas les autorisations d'accès nécessaires pour pouvoir planifier une tache...
C'est donc les responsables du services infos qui se chargeront de le faire.
Encore merci ;-)

Yan
0
Rejoignez-nous