IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Pb de lancement d'une macro dans une tache planifiée [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 27
    Points : 14
    Points
    14
    Par défaut Pb de lancement d'une macro dans une tache planifiée
    Bonjour,

    Je rencontre un problème pour lancer une macro Excel '.xlsm' dans une tache planifié Windows.

    La macro se situe sur un serveur de notre domaine.
    La tache planifié est créé sur un poste du domaine qui a accès au serveur.
    Sur le poste, un lecteur réseau est créé pour accéder directement au dossier dans lequel est la macro.
    La macro est lancée avec un compte admin du domaine.
    Ce compte admin a une session de créé sur le poste (avec le lecteur réseau)

    J'ai testé plusieurs choses sans succès.
    - lancer excel.exe avec en paramètre le chemin de la macro (absolu et relatif(lecteur réseau))
    - lancer directement la macro avec son chemin absolu ou relatif (absolu et relatif(lecteur réseau)
    - lancer cmd.exe avec en paramètre le chemin de la macro (absolu et relatif(lecteur réseau))

    Il y a bien un processus Excel qui est lancé, mais pas de visu et il tourne à l'infini.
    Lorsque la macro est lancée un log est créé (incrémenté)

    Je précise que ce n'est pas moi qui est dev la macro, mais l'un de mes collègue qui revient lundi.

    Merci d'avance pour vos idées

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 350
    Points
    34 350
    Par défaut
    Bonjour,

    peut-on voir le fichier bat ?

    A toute fin utile, as-tu jeter un oeil a
    http://jpcheck.developpez.com/tutori...ous-windows-7/
    et
    http://jpcheck.developpez.com/tutori...ge-parametres/

  3. #3
    Membre à l'essai
    Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Bonjour jpcheck,

    Non je n'avait pas lu. Pour le premier pas de soucis.

    La macro fonctionne lorsque on la lance depuis une session Windows.
    Une fois dans la tache planifié plus rien. Excel ou cmd sont bien lancés(processus), mais rien ne s'ouvre, ils tournent à l'infini.

    J'ai voulu démarrer Excel (execl.exe) avec une tache planifié, il me met une erreur de lancement.

    le batch est censé ouvrir la macro :
    @echo off
    Start P:\MacroAutomatique-Copie.xlsm

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 350
    Points
    34 350
    Par défaut
    Attention, la la seule chose qui est faite est d'ouvrir le classeur, aucune macro en particulier n'est lancee, sauf presence d'un autoexec...

  5. #5
    Membre à l'essai
    Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Lorsque l'on ouvre le fichier .xlsm la macro se lance automatiquement (sujet traiter il me semble dans ce thread : http://jpcheck.developpez.com/tutori...ge-parametres/ )

    De plus le classeur ne s'ouvre pas (du moins pas visuellement).

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 350
    Points
    34 350
    Par défaut
    Et en essayant avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @echo off
    "C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" "P:\MacroAutomatique-Copie.xlsm"
    ca ne donne rien ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    personnellement, je préfère écrire un script en VBScript que le planificateur de tache exécutera, et c'est lui qui ouvre une session Excel,le fichier et qui run la macro!

    Code FichierVBScript.vbs : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim xlapp
    dim Wb
    Set xlapp = CreateObject("Excel.Application")
    xlapp.Visible = True
    set Wb = xlapp.Workbooks.open("C:\MyTest\MyTest.xlsm")
    Wb.application.Run "test"
    Wb.close false
    xlapp.Quit
    Dernière modification par Invité ; 02/09/2016 à 13h36.

  8. #8
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 141
    Points : 9 976
    Points
    9 976
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    oui je suis d'accord avec rdurupt, le vbs est beaucoup plus pratique pour les tâches planifiées

    voici un exemple que j'utilise sur un programme "nocturne" qui tourne sur une VM

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set AppExcel = CreateObject("Excel.Application")
    With AppExcel
        .Visible = True
        Set Wb = .Workbooks.open("D:\Users\Outlook.xlsm")
        .Run "TailleBal"
        .Quit
    end With
    Le fichier s'appelle "Outlook.xlsm"
    La macro à lancer dans ce fichier s'appelle "TailleBal"
    Le classeur est fermé directement à la fin de la macro, d'où le fait que le Vbs va uniquement fermer l'instance Excel à la toute fin


    EDIT : j'avais pas rafraichis et vu que rdurupt avait rajouté un exemple de vbs

  9. #9
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 350
    Points
    34 350
    Par défaut
    Oh, allez pas me detourner ajen31 du droit chemin du VBA hein

    La solution te conviendrait-elle ?

  10. #10
    Membre à l'essai
    Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Bonjour à tous les deux,

    Merci de vos réponses.

    @jpcheck
    j'ai essayé avec ta solution pour le bat
    Il a créé le processus, démarrer la tache, terminé la tache.
    Mais rien dans le log....

    @joe.levrai
    J'ai aussi testé ta solution.
    "Echec du démarrage de l'action"

    @rdurupt
    Je n'ai pas testé ta solution.

    Souvent lorsque j'essaye de lancer un .exe ou un .bat .vbs .... il me met "Echec du démarrage de l'action"

  11. #11
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 141
    Points : 9 976
    Points
    9 976
    Billets dans le blog
    5
    Par défaut
    Peux-tu nous montrer le vbs que tu as écris du coup ? Avec le chemin du fichier etc...

    Et nous expliquer comment tu as planifié la tâche ?
    J'ai des centaines de scripts (parfois plus complexes) comme ça qui s'enchainent à longueur de journée sur une machine virtuelle, et je n'ai pas de souci particulier

  12. #12
    Membre à l'essai
    Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    J'ai repris a peu près la même chose qu' écrit joe.levrai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Set AppExcel = CreateObject("Excel.Application")
    With AppExcel
        .Visible = True
        Set Wb = .Workbooks.open("chemincompletversmonfichier.xlsm")
        .Quit
    end With
    J'ai enlever le .Run.... la macro s'ouvre automatiquement lorsque l'on ouvre le fichier .xlsm.

    la macro schématisé c'est ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Workbook_Open()
     
    code traité dans la macro
     
    End Sub
    Il me semble donc qu'elle s'ouvre au lancement du fichier.

  13. #13
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 350
    Points
    34 350
    Par défaut
    Cette piste me semble bonne, toutefois fait attention au code que tu mets dans ton workbook_open.

    En effet se pose la question de l'ouverture avec execution de la macro en question "a tous les coups" ou bien "seulement par lancement automatise"

  14. #14
    Invité
    Invité(e)
    Par défaut
    Il ne faut jamais place du code dans open mais dans une sub d'un module standard et appeler la sub à partir de Open!

  15. #15
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 141
    Points : 9 976
    Points
    9 976
    Billets dans le blog
    5
    Par défaut
    Je n'utilise pas de procédure évènementielle Workbook_Open avec des vbs, je ne saurai dire si ça provient de ça

    Pour le vérifier, je te propose de déplacer cette procédure dans un module standard.
    Appelle-la "test" par exemple

    et ton fichier vbs devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Set AppExcel = CreateObject("Excel.Application")
    With AppExcel
        .Visible = True
        Set Wb = .Workbooks.open("chemincompletversmonfichier.xlsm")
        .Run "test"
        .Quit
    end With

    Si la procédure se lance, cela signifie que c'est bien le fait qu'elle soit dans le workbook_open qui pose problème.

  16. #16
    Membre à l'essai
    Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Bonne question.
    Lundi je joint le dev pour voir avec lui si le pb viendrait pas de sa macro...

    Je vous tiens au courant dès que j'ai plus d'info.

  17. #17
    Invité
    Invité(e)
    Par défaut
    La méthode open permet par exemple l'initiation de variables public utiliser dans des fonction personnalisé elles même utiliser comme formule dans un tableau Excel.

    Comme il faut que l'initiation se fassent avant le premier calcul automatique qui ce produit à l'activation du fichier.

    Le fichier n'est pas actif et comme certainement on va trouvé de active activate et autres sélection!

    Je préconise ne ne pas coder dans Open!

    Ca ne veut pas dire qu'il ne faut pas place de activate dans Open ca dépend du système et dz ça vitesse d chargement.

    On ne verra jamais quelqu'un descendre de l'avion tant qu'il roule sur le tarmac!
    Dernière modification par Invité ; 02/09/2016 à 17h37.

  18. #18
    Membre à l'essai
    Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 27
    Points : 14
    Points
    14
    Par défaut [Résolu]
    Bonjour Bonjour,

    Je viens donner la solution que j'ai trouvée.

    Z-Cron.

    J'ai voulu tester avec d'autres logiciels de planification de taches ''pour voir''.
    Ça fonctionne en exécutant Excel.exe et le chemin de mon fichier .xlsm en paramètre.
    Le seul ''Hic'' c'est que pour que ça fonctionne il faut que la session admin soit active(elle est verrouillé bien entendu).

    J'ai l'impression que lorsque on veut lancer le fichier .xlsm (via la tache planifié) en tant que service ça ne fonctionne pas.
    Mon responsable a validé.

    Du coup ce n'est pas vraiment résolu, mais j'ai trouvé une solution alternative.

    Merci pour vos réponses.
    A +

  19. #19
    Invité
    Invité(e)
    Par défaut
    bonjours,
    depuis quand est il impossible d’exécuter une tache planifier Admin?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser une valeur d'une variable dans une Macro
    Par ca_adrien dans le forum Macro
    Réponses: 7
    Dernier message: 01/08/2013, 15h14
  2. utiliser une macro dans une macro
    Par Calimero33 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2010, 18h48
  3. Réponses: 2
    Dernier message: 24/02/2009, 18h40
  4. écrire le résultat d'une macro dans une cellule d'une feuille à choisir
    Par ririrourou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/06/2008, 12h56
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo