OVH Cloud OVH Cloud

Comment créer une tâche automatique journalière avec W8.1

20 réponses
Avatar
Fredo P.
Bonjour,
Comment créer une tâche automatique journalière avec W8.1 consistant à
ouvrir un classeur Excel et que la macro Private sub Workbook_Open démarre?

10 réponses

1 2
Avatar
JièL
Le 07/12/2017 à 12:48, Michd a écrit :
Ah la barrière de la langue...
http://www.expressio.fr/expressions/monter-sur-ses-grands-chevaux.php
**** Je n'ai aucun problème avec la langue française et toi?

Moi non plus, mais tu as raison ça n'est pas avec la langue française
que tu as un problème...
**** Tout ça par que Monsieur a un gros égo et qu'il préfère le travail
soit fait par quelqu'un autre parce que pense-t-il, son temps est trop
précieux pour tester les propos qu'il avance même s'il possède le savoir
pour le faire... à moins que ce soit de la paresse!

J'avais pourtant bien écrit (et réécrit) "Juste une question MichD",
mais bon, y'a des gens qui lisent de gauche à droite et d'autre (sans S)
en diagonale...
Pourtant, il a toujours le temps pour de l'ergotage! Un très petit petit
petit petit... Trump en devenir! ;-))))

Tu sais ce qu'il te dit le "Trump en devenir" ?!
PS : même les smiley tu ne sais pas t'en servir... c'était ;->>>> qu'il
fallait mettre
--
JièL très petit petit petit petit mais gros égo
Avatar
Michd
Quel est le nom de la macro?
Est-ce que ta macro a un ou des paramètres dans la déclaration de la
procédure comme :
Sub Test(X as string, Y as String)
Si ta procédure n'a pas de paramètres, cette ligne de code devrait être :
set Wk =Xl.Workbooks.Open("W:Excel MacroEIM File
ManegerEIM_file_check.xlsm)
et non
set Wk =Xl.Workbooks.Open("W:Excel MacroEIM File
ManegerEIM_file_check.xlsm", 0, True")
", 0, True" qui représente 2 paramètres que j'ai ajoutés pour donner un
exemple complet. J'ai même donné les explications dans le deuxième message
sur ce fil. Tu l'as lu?
MichD
Avatar
Xonic
Bonjour,
Dans cette ligne, les paramètres 0 et True me semblent être des
paramètres de Workbooks.Open dont le True signifie ouverture en lecture
seule.
Je ne pense pas que ce sont les paramétres de la procédure.
set Wk =Xl.Workbooks.Open("W:Excel MacroEIM File Maneger
EIM_file_check.xlsm", 0, True")
Michd a couché sur son écran :
Quel est le nom de la macro?
Est-ce que ta macro a un ou des paramètres dans la déclaration de la
procédure comme :
Sub Test(X as string, Y as String)
Si ta procédure n'a pas de paramètres, cette ligne de code devrait être :
set Wk =Xl.Workbooks.Open("W:Excel MacroEIM File
ManegerEIM_file_check.xlsm)
et non
set Wk =Xl.Workbooks.Open("W:Excel MacroEIM File
ManegerEIM_file_check.xlsm", 0, True")
", 0, True" qui représente 2 paramètres que j'ai ajoutés pour donner un
exemple complet. J'ai même donné les explications dans le deuxième message
sur ce fil. Tu l'as lu?
MichD

--
Alain
Avatar
Michd
Je suppose alors que ta procédure fonctionne rondement maintenant!
Bravo.
MIchD
Avatar
Fredo P.
Sans paramètre comme dans mon exemple: Xl.Run "ToutFaire"
"Michd" a écrit dans le message de groupe de discussion :
p0loph$5r5$
Quel est le nom de la macro? : ToutFaire
Est-ce que ta macro a un ou des paramètres dans la déclaration de la
procédure comme :
Sub Test(X as string, Y as String)
Si ta procédure n'a pas de paramètres, cette ligne de code devrait être :
set Wk =Xl.Workbooks.Open("W:Excel MacroEIM File
ManegerEIM_file_check.xlsm)
et non
set Wk =Xl.Workbooks.Open("W:Excel MacroEIM File
ManegerEIM_file_check.xlsm", 0, True")
", 0, True" qui représente 2 paramètres que j'ai ajoutés pour donner un
exemple complet. J'ai même donné les explications dans le deuxième message
sur ce fil. Tu l'as lu?
MichD
Avatar
Michd
Voici un fichier VBS testé.
Si tu as une macro événementielle dans le ThisWorkbook "Workbook_open", elle
va s'exécuter à l'exécution du fichier VBS. Si tu veux exécuter une macro
spécifique, tu la places dans un module standard. Dans l'exemple, la macro
s'appelle "MaMacro"
Si Jiel ne s'était pas intervenu sur ce fil, cela ferait longtemps que le
problème serait réglé.... ;-)))
'---------------------------------------------------------------------
Dim Xl
Dim Wk
Dim Fichier
'Chemin et fichier à traiter
Fichier = "C:UsersDenisDocumentsClasseur1.xlsm"
'Création d'une instance d'excel
Set Xl = WScript.CreateObject("Excel.application")
'rend visible l'application, si tu le désires
Xl.visible = -1 'Rend l'application visible ou 0 pour ne rien voir.
'ouverture du fichier
Set Wk = Xl.Workbooks.Open(Fichier)
'Pour fermer le classeur en sauvegardant
Xl.run "MaMacro"
Wk.Close -1 'Ferme excel en sauvegardant sinon 0 pour ne rien enregistrer
'Pour fermer l'application excel
Xl.Quit
'Pour vider la mémoire des objets créés
Set Wk = Nothing: Set Xl = Nothing
'---------------------------------------------------------------------
MichD
Avatar
JièL
Le 13/12/2017 à 13:00, Michd a écrit :
Si Jiel ne s'était pas intervenu...

Si je ne m'étais pas intervenu tu t'aurais en nuit yé :-)
... sur ce fil, cela ferait longtemps que
le problème serait réglé.... ;-)))

Le pb aurait été tout aussi bien réglé sans VBS !
Une tâche planifié avec
excel.exe /r "c:cheminclasseur.xlsm"
et c'est tout
Le classeur.xlsm contenant bien évidement une macro WorkBook_Open comme
le demandait Fredo dans son premier message ;-)
PS : j'avais seulement posé une question, mais visiblement, ça toi pas
comprendre.
--
JièL ennuie y'heurt
Avatar
Michd
Jiel qui continue à taper sur son clou, le marteau y connaît ça!
Avec l'usage d'un fichier VBS on a les avantages suivants :
L'application Excel s'ouvre dans une nouvelle instance, on a la possibilité
de ne pas afficher cette instance et les macros s'exécutent en arrière-plan.
Ceci évite de perturber le travail de l'usager sur cet ordinateur
(ralentissement peut-être du processeur durant l'exécution de la macro) et
évite toute interaction entre ce que l'usager fait (même s'il travaille avec
Excel à ce moment-là) et l'exécution du fichier VBS. Ces interactions ne
sont pas toujours heureuses!
Jiel peut continuer d'enfoncer son clou, il a un marteau tout neuf.
MichD
Avatar
Fredo P.
C ok MichD, cette fois cela fonctionne forcément le code est sensiblement
le même que ma précédente version mais avec une différence la macro démarrée
n'est pas la même, j'espère qu'à la fin du travail effectué par ce classeur
je n'ai plus ce message d'erreur envoyé par l'appli vbs.
Merci Denis et bonne journée
"Michd" a écrit dans le message de groupe de discussion :
p0r4p3$19gc$
Voici un fichier VBS testé.
Si tu as une macro événementielle dans le ThisWorkbook "Workbook_open", elle
va s'exécuter à l'exécution du fichier VBS. Si tu veux exécuter une macro
spécifique, tu la places dans un module standard. Dans l'exemple, la macro
s'appelle "MaMacro"
Si Jiel ne s'était pas intervenu sur ce fil, cela ferait longtemps que le
problème serait réglé.... ;-)))
'---------------------------------------------------------------------
Dim Xl
Dim Wk
Dim Fichier
'Chemin et fichier à traiter
Fichier = "C:UsersDenisDocumentsClasseur1.xlsm"
'Création d'une instance d'excel
Set Xl = WScript.CreateObject("Excel.application")
'rend visible l'application, si tu le désires
Xl.visible = -1 'Rend l'application visible ou 0 pour ne rien voir.
'ouverture du fichier
Set Wk = Xl.Workbooks.Open(Fichier)
'Pour fermer le classeur en sauvegardant
Xl.run "MaMacro"
Wk.Close -1 'Ferme excel en sauvegardant sinon 0 pour ne rien enregistrer
'Pour fermer l'application excel
Xl.Quit
'Pour vider la mémoire des objets créés
Set Wk = Nothing: Set Xl = Nothing
'---------------------------------------------------------------------
MichD
Avatar
Fredo P.
Le message d'erreur vbs est encore à l'écran à la fin des procédures
VBA.=coup d'épée dans l'eau.
"Fredo P." a écrit dans le message de groupe de discussion :
p0t5i5$g09$
C ok MichD, cette fois cela fonctionne forcément le code est sensiblement
le même que ma précédente version mais avec une différence la macro démarrée
n'est pas la même, j'espère qu'à la fin du travail effectué par ce classeur
je n'ai plus ce message d'erreur envoyé par l'appli vbs.
Merci Denis et bonne journée
"Michd" a écrit dans le message de groupe de discussion :
p0r4p3$19gc$
Voici un fichier VBS testé.
Si tu as une macro événementielle dans le ThisWorkbook "Workbook_open", elle
va s'exécuter à l'exécution du fichier VBS. Si tu veux exécuter une macro
spécifique, tu la places dans un module standard. Dans l'exemple, la macro
s'appelle "MaMacro"
Si Jiel ne s'était pas intervenu sur ce fil, cela ferait longtemps que le
problème serait réglé.... ;-)))
'---------------------------------------------------------------------
Dim Xl
Dim Wk
Dim Fichier
'Chemin et fichier à traiter
Fichier = "C:UsersDenisDocumentsClasseur1.xlsm"
'Création d'une instance d'excel
Set Xl = WScript.CreateObject("Excel.application")
'rend visible l'application, si tu le désires
Xl.visible = -1 'Rend l'application visible ou 0 pour ne rien voir.
'ouverture du fichier
Set Wk = Xl.Workbooks.Open(Fichier)
'Pour fermer le classeur en sauvegardant
Xl.run "MaMacro"
Wk.Close -1 'Ferme excel en sauvegardant sinon 0 pour ne rien enregistrer
'Pour fermer l'application excel
Xl.Quit
'Pour vider la mémoire des objets créés
Set Wk = Nothing: Set Xl = Nothing
'---------------------------------------------------------------------
MichD
1 2