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

VBA Discussion :

enregistrement avc macro ds OOo en mode hidden


Sujet :

VBA

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut enregistrement avc macro ds OOo en mode hidden
    Bonjour,

    Mon problème est compliqué c pourquoi mon titre n'est pas tres clair :
    je dois faire un changement de type de documents writer ooo (sxw => odt) avec una appli java sans que ooo ne s'affiche.

    Je travaille donc sur une macro qui ouvre ooo en mode "hidden" comme dans l'exemple de la faq ooo.developpez.com/faq.

    Cependant, il existe 2 méthodes ensuite pour changer le type de doc :

    la première en utilisant la macro suivante :


    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
    34
    35
    36
    37
    
    dim strFile as String
    dim document as object
    dim dispatcher as object
    dim adresseDoc as String
    dim args(0) as new com.sun.star.beans.PropertyValue
    dim args2(2) as new com.sun.star.beans.PropertyValue
    
    'Arguments Open Office pour masquer le fichier   
    args(0).Name = "Hidden" 'nom de l'argument
    args(0).Value = True 'valeur de l'argument
    	
    strFile = "C:\test.sxw"
    	
    adresseDoc = convertToURL(strFile)'adresse du document à modifier
    'on charge le document 
    document = StarDesktop.LoadComponentFromURL(adresseDoc, "_blank", 0, args())
    'on cree l'adresse en .odt
    adresseDoc = convertToURL(left(strFile, len(strFile)-3) + "odt")
    'on recupère le document en cours
    document   = ThisComponent.CurrentController.Frame 		
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    
    'arguments pour enregister le doc en .odt			
    args2(0).Name = "URL"
    args2(0).Value = adresseDoc
    args2(1).Name = "FilterName"
    args2(1).Value = "writer8"
    args2(2).Name = "SelectionOnly"
    args2(2).Value = true
    
    dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args2())
    On Error Resume Next
    document.Close(True) ' fermeture du document en cours
    On Error Goto 0
    	
    end sub
    Le problème c qu'avec :
    "document = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")"


    , je prend le document affiché alors qu'il ne l'ai pas.

    deuxième méthode, j'utilise ceci :
    "document.storeAsURL(adresseDoc, args2())"
    à la place mais j'ai alors un bug etrange :
    "Runtime error BASIC.
    Une exception s'est produite :
    Type : com.sun.star.task.ErrorCodeIOException"


    Est-ce que qu'il y a une solution pour faire ce que je veux sans que ooo ne s'affiche tout en evitant le code qui plante ?

    Merci pour votre aide si précieuse.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 150
    Points
    20 150
    Par défaut
    bonjour

    tu peux essayer cette adaptation


    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
    dim strFile as String
    dim document as object
    dim dispatcher as object
    dim adresseDoc as String
    dim args(0) as new com.sun.star.beans.PropertyValue
    dim args2(2) as new com.sun.star.beans.PropertyValue
     
    'Arguments Open Office pour masquer le fichier   
    args(0).Name = "Hidden" 'nom de l'argument
    args(0).Value = True 'valeur de l'argument
     
    strFile = "C:\essai.sxw"
     
    adresseDoc = convertToURL(strFile)'adresse du document à modifier
    'on charge le document 
    document = StarDesktop.LoadComponentFromURL(adresseDoc, "_blank", 0, args())
    'on cree l'adresse en .odt
    adresseDoc = convertToURL(left(strFile, len(strFile)-3) + "odt")
     
    'arguments pour enregister le doc en .odt			
    args2(0).Name = "URL"
    args2(0).Value = adresseDoc
    args2(1).Name = "FilterName"
    args2(1).Value = "writer8"
    args2(2).Name = "SelectionOnly"
    args2(2).Value = true
     
    document.storeAsURL(adresseDoc, args2())
    document.Close(True)


    bonne soirée
    michel

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Merci maintenant ca marche !!!

    bonne soirée à toi, tu me sauves la vie

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

Discussions similaires

  1. Pb d'enregistrement de macro
    Par refreketu dans le forum VBA Word
    Réponses: 7
    Dernier message: 21/04/2008, 11h16
  2. Problème D'enregistrement de macro
    Par VercleChrist dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/01/2008, 12h06
  3. Réponses: 7
    Dernier message: 02/07/2007, 15h07
  4. [Word] Curseur inutilisable en mode enregistrement de macro
    Par douguelasse dans le forum VBA Word
    Réponses: 6
    Dernier message: 21/03/2007, 18h52
  5. Probleme d'enregistrement sur Macro/VBA de Excel
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/11/2005, 18h23

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