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

Développement de jobs Discussion :

Executer automatiquement une macro avec talend


Sujet :

Développement de jobs

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 106
    Points : 54
    Points
    54
    Par défaut Executer automatiquement une macro avec talend
    Bonjour à tous,
    je cherche comment je lance une macro excel à partir de talend.
    Merci pour vos réponses.

  2. #2
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    En effet j'ai déjà fait une rechercher à propos de ce sujet, en fait ce n'est pas possible directement avec les composants Talend, ce qu'il faut faire c'est utiliser du code externe et l'appeler style JAVA ou bien la ligne de commande directement.

    Il y' a une méthode que j'avais trouvé mais je ne l'ai pas testé, c'est de créer un script VB qui lance la macro puis d'appeler le script VB avec la commande line à partir de JAVA , c'est pas compliqué mais c'est très long comme chemin.

    Exemple :
    Tu crées ton VBScript monScript.vbs comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim objXL
    Set objXL = CreateObject("Excel.Application")
    With objXL
        .Workbooks.Open ("File_Path")
        .Application.Run "Macro_Name"
        .Application.Quit
    End With
    Set objXL = Nothing
    Et tu le lances avec une fonction JAVA comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="http://runtime.getruntime.exec/" target="_blank">Runtime.getRuntime().exec("cmd /c start monScript.vbs");</a>
    A tester !!

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 106
    Points : 54
    Points
    54
    Par défaut
    Merci pour ta réponse,
    en faite, je crée un fichier csv avec talend avec une entête et des données bien sur, le nom du fichier est automatique et qui prend la date du traitement, j'execute une macro sur ce fichier pour créer un fichier excel avec plusieurs feuilles.
    Je dois préciser dans le Workbooks.Open("File_Path"), le chemin et le nom du fichier csv créé par talend,
    et je met le nom de la macro dans la ligne suivante du code VB, c'est ça normalement n'est ce pas ?

  4. #4
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    Oui c'est exactement ça,
    Pour le code JAVA il y' a une erreur voilà le bon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("cmd /c start monScript.vbs");

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 106
    Points : 54
    Points
    54
    Par défaut
    une question simple, s'il te plait, je crée le script VB dans n'importe quel dossier et je mets le chemin dans la commande java ou bien je dois le créer dans le workspace de talend par défaut ?

  6. #6
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    Le script VB n'a aucun rapport avec ton projet Talend, tu le crées où tu veux du moment que tu spécifies le bon chemin dans la commande runtime.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 106
    Points : 54
    Points
    54
    Par défaut
    Donc le script sera un java script et il est executé (par exemple) dans le planificateur des taches windows, il contient cette ligne de commande si j'ai bien compris:
    Runtime.getRuntime().exec("cmd /c start monScript.vbs"); avec la spécification du chemin correcte.

    Et donc le role de talend dans mon projet c'est de créer automatiquement le fichier csv.

  8. #8
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    Ce n'est pas un javascript c'est du VB Script, ce dernier va te permettre de lancer une macro.

    Et l'appel à ce VB script tu peux le faire dans un code JAVA (avec une routine ou bien un tJavaRow). Le planificateur de tâche n'a rien a voir là dedans.

    C'est on job Talend qui va lancer la création du CSV puis va lancer le code java qui va à son tour lancer le VB script , qui va à sont tour lancer la MACRO

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 106
    Points : 54
    Points
    54
    Par défaut
    Merci j'ai compris.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 106
    Points : 54
    Points
    54
    Par défaut
    J'ai encore un soucis, c'est que le fichier csv sur lequel le script lance la macro est généré automatiquement chaque semaine et prend un nom en fonction de la date de traitement, avec une variable de get.talend.date, donc il change de nom chaque semaine, c'est à dire le script doit etre changé chaque fois que le fichier est généré, si je pourrais passer le nom du fichier par variable dans le script c'est parfait.
    un script java peut lancer la macro en prenant en compte le nom du fichier avec une variable date, je ne sais pas si j'étais clair ?

  11. #11
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    En fait JAVA ne fait que lancer l'interpreteur de commande "CMD" qui va lancer le VBScript, donc si tu arrives un créer une ligne de commande (dos) qui pourra lancer le script avec un paramètre alors c'est bon, côté JAVA il n y' a pas de soucis.

    Fait une recherche dans ce sens là : "Comment executer VBscript avec paramètre?"

  12. #12
    Membre à l'essai
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 27
    Points : 23
    Points
    23
    Par défaut
    Tu peux utiliser le composant tSystem pour lancer une commande cmd.
    Sinon pour l’exécution d''une macro VBA ou VB Script ,tu trouveras un composants dans le talend exchange qui te permettra de le faire.

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

Discussions similaires

  1. Executer une macro avec un batch
    Par julo12000 dans le forum Débuter
    Réponses: 0
    Dernier message: 12/11/2012, 14h13
  2. execution d'une macro avec access 2007
    Par SALIA LOUA OLIVIER dans le forum Access
    Réponses: 5
    Dernier message: 14/09/2011, 10h40
  3. Réponses: 3
    Dernier message: 20/07/2007, 08h58
  4. execution d'une macro d'access sous delphi
    Par galendor_d'ambre dans le forum Bases de données
    Réponses: 6
    Dernier message: 10/02/2004, 15h58
  5. Execution d'une procedure avec TNotifyEvent;
    Par Chupakabra dans le forum Langage
    Réponses: 2
    Dernier message: 30/01/2003, 14h50

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