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

Word Discussion :

Executer macro VBA Word silencieusement


Sujet :

Word

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Executer macro VBA Word silencieusement
    Bonjour a tous,

    Je travaille actuellement a la generation automatique de documents word. La generation se fait depuis un programme java. Le contenu du document est genere dans un fichier TXT puis l'appel d'une macro VBA Word permet de mettre en forme le tout.
    Pour l'instant je lance l'execution de la macro comme ceci depuis java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Process p = null;
    Runtime rt = Runtime.getRuntime();
    String[] cmd = {"cmd", "/c", pathToWINWORD.EXE, pathToMyWordDocument, "/mGenerate"};
    p = rt.exec(cmd);
    p.waitFor();
    Mon probleme est que lors de l'execution, word s'ouvre et bloque le process jusqu'a ce que je quitte manuellement Word. Cette macro est cense tourne cote serveur.
    Existe-t-il un moyen de lancer word silencieusement pour executer cette macro et donc ne beneficier que du moteur d'execution de macro sans ouvrir l'interface graphique?
    Merci d'avance.
    Germain

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Ce code n'est pas du VBA mais du JAVA.
    En VBA, pour avoir l'interface visible, il faut le demander, par défaut elle ne l'est pas.

    Pour JAVA, je n'ai aucune idée.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut oli,

    Pourrais tu m'eclaircir sur ce point
    En VBA, pour avoir l'interface visible, il faut le demander, par défaut elle ne l'est pas.
    Pour l'instant je m'oriente vers une solution qui me permettrais de fermer tous les documents ouverts puis de quitter Word, ce qui me permettrais de simuler ce que je souhaite faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Sub SaveAllAndQuit()
         'Close all open files and shutdown Word
        Application.DisplayAlerts = False
     
        With Application
            .ScreenUpdating = False
     
            Dim i As Integer
            Set i = .Documents.Count
             'Loop Through open documents
            Do Until i = 0
                 'Close save
                Documents(i).Saved = True
                i = i - 1
            Loop
     
            .Quit SaveChanges:=wdDoNotSaveChanges
        End With
    End Sub
    Mais la mon probleme est que je ferme bien tous les documents mais Word reste ouvert (mais sans aucun documents d'ouvert)

    Aurais-tu une suggestion?

  4. #4
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Il y a une erreur à l'exécution de ton code sur la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set i = .Documents.Count
    Il faut la remplacer par
    Et la ta procédure devrait fonctionner.
    Attention, le processus Winword.exe peut continuer de tourner dans le cas où d'autres programmes l'utiliserait comme Outlook.
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/07/2015, 11h38
  2. Macro VBA word pour automatiser un rapport
    Par zouizoui dans le forum VBA Word
    Réponses: 7
    Dernier message: 30/10/2014, 22h07
  3. Php et macro vba word
    Par neuneu1 dans le forum Langage
    Réponses: 4
    Dernier message: 19/08/2009, 18h48
  4. Réponses: 1
    Dernier message: 27/11/2008, 16h47
  5. Réponses: 0
    Dernier message: 06/08/2007, 12h46

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