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

Documents Java Discussion :

Comment exécuter un macro personnalisée en utilisant Java


Sujet :

Documents Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Comment exécuter un macro personnalisée en utilisant Java
    pour un macro spécifique à un fichier excel,il s'exécute sans problème ,voilà le code correspondant :


    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    private static void callExcelMacro(File file, String macroName) {
    ComThread.InitSTA();
     
    final ActiveXComponent excel = new ActiveXComponent("Excel.Application");
     
    try {
    // This will open the excel if the property is set to true
    // excel.setProperty("Visible", new Variant(true));
     
    final Dispatch workbooks = excel.getProperty("Workbooks")
    .toDispatch();
    final Dispatch workBook = Dispatch.call(workbooks, "Open",
    file.getAbsolutePath()).toDispatch();
     
    // Calls the macro
    final Variant result = Dispatch.call(excel, "Run",
    new Variant(file.getName() + macroName));
     
    // Saves and closes
    Dispatch.call(workBook, "Save");
     
    com.jacob.com.Variant f = new com.jacob.com.Variant(true);
    Dispatch.call(workBook, "Close", f);
     
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
     
    excel.invoke("Quit", new Variant[0]);
    ComThread.Release();
    }
     
    }
    je fais appel à la méthode par ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    final File file = new File( "D:\\essay1.xlsm");
    final String macroName = "!Module1.Macro2";
    callExcelMacro(file, macroName);
    mais pour exécuter un macro personnalisé, cela ne marche plus !!!!!!!!
    j'ai affecté à macroName toutes les valeurs possibles , mais aucune réponse

  2. #2
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Ah le monde du libre et le monde du "tout protégé" : il il a un monde entre les deux.

    Bon courage mais j'ai déjà joué dans la cour des applications propriétaires...

    En plus de cela, ton application risque au final de ne pas être portable du tout : c'est un comble dans le monde du java.

    Bonjour à tout le monde.
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  3. #3
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Citation Envoyé par Mister Nono Voir le message
    ton application risque au final de ne pas être portable du tout
    Ce n'est pas ce que @zaki.oulk92 demande.
    Il cherche simplement à exécuter une macro Excel depuis Java.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  4. #4
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    Ce n'est pas ce que @zaki.oulk92 demande.
    Il cherche simplement à exécuter une macro Excel depuis Java.
    Bien sur, mais il est bien de percevoir les risques qu'apporte une nouvelle fonctionnalité.
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Je n'y connait pas grand chose, mais il y a un bout de code ici en matlab
    http://www.mathworks.com/matlabcentr...ls_run_macro.m

    avec une partie intéressante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Excel     = actxserver('Excel.Application'); % open Excel as a COM Automation server
    set(Excel,'Visible',1);                      % make the application visible
     % or ExcelApp.Visible = 1;
     % necessary for some macros to run properly
    set(Excel,'DisplayAlerts',0);                % make Excel not display alerts (e.g., sound and confirmation)

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/02/2015, 07h36
  2. Réponses: 3
    Dernier message: 21/12/2009, 01h54
  3. comment faire pour que plusieurs user utilise mem macro?
    Par megapacman dans le forum Access
    Réponses: 4
    Dernier message: 27/03/2006, 16h55
  4. Réponses: 5
    Dernier message: 16/03/2006, 00h37
  5. [Prolog] Comment utiliser java avec swiprolog
    Par bichouchou dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 11/03/2006, 15h20

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