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

OpenOffice & LibreOffice Discussion :

Modifier puis enregistrer un document Writer depuis Calc avec une macro [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant en BTS Informatique de Gestion
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant en BTS Informatique de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Points : 22
    Points
    22
    Par défaut Modifier puis enregistrer un document Writer depuis Calc avec une macro
    Bonjour à tous,

    Je viens vers vous car j'ai actuellement un problème.
    J'essaie en vain d'enregistrer sous un document Writer que j'ai ouvert depuis calc via une macro.
    Cette macro fonctionne quand elle est stockée en local, mais est inopérante lorsqu'elle est enregistrée dans le classeur.
    La partie édition fonctionne, c'est la partie enregistrement qui fait des siennes...

    En fait j'ouvre le fichier Test.odt, je le modifie, et je souhaiterais l'enregistrer sous "leno.odt" pour pouvoir conserver l'original non modifié en plus de la nouvelle version.
    J'ai eu beau chercher sur notre ami Google, je n'ai rien trouvé qui fonctionne :/

    Je vous joins le code.

    Merci à vous.

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Sub Edition
     
    Dim Fichier As String
    Dim ledoc As Object
    Dim Args()
    Dim oDocument As Object, oSheet As Object, oCell As Object
    oDocument = ThisComponent
    dim monclasseur as object
    dim mafeuille as object
    dim leno as string
     
    MonClasseur = oDocument.getSheets
    MaFeuille = MonClasseur.GetByName("Feuille1")
     
    'partie édition 
     
    leno = Mafeuille.getCellByPosition(0,0).string
    Fichier = ConvertToUrl("X:\Document\Test.odt")
    ledoc = StarDesktop.loadComponentFromURL(Fichier,"_blank",0 ,Args() )
     
    FandR = ledoc.createReplaceDescriptor
     
    dim ancien(2) as string, nouveau(2) as string
    dim i as long
     
    ancien() = array("dateredac", "leno")
    nouveau() = array(Cstr(Date), leno)
     
    for i=0 to 1
      FandR.SearchString = ancien(i)
      FandR.ReplaceString = nouveau(i)
      ledoc.replaceAll(FandR)
    next i
     
     'enregistrer sous le document
     
    dim document as object
    dim dispatcher as object
     
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
     
    dim args1(1) as new com.sun.star.beans.PropertyValue
    args1(0).Name = "URL"
    args1(0).Value = ConvertToUrl("X:\Document\" & leno & ".odt") 'On converti le chemin
    args1(1).Name = "FilterName"
    args1(1).Value = "calc8"
     
    dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0,args1() )
     
    'fermer le document
     
    ledoc.store    
    ledoc.close(True)
     
    End Sub

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 612
    Points
    58 612
    Billets dans le blog
    11
    Par défaut
    Salut,

    Avec quelque comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sub subSaveAs(oDoc, sFile)
      dim mFileType(0)
      sURL = convertToURL(sFile)
      mFileType(0) = createUnoStruct("com.sun.star.beans.PropertyValue")
      mFileType(0).Name = "FilterName"
      mFileType(0).Value = sType
      oDoc.storeAsURL(sURL, mFileType())
    end sub
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant en BTS Informatique de Gestion
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant en BTS Informatique de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Désolé pour les codes, j'avais pas trouvé le bouton ^^'

    Je vais regarder ça et tester merci

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant en BTS Informatique de Gestion
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant en BTS Informatique de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Désolé pour le reard je m'étais un peu absenté. Merci beaucoup Zoom61, ton code fonctionne parfaitement.
    En fait j'exécutais les macros locales et pas celles du document...

    Je peux noter ce sujet résolu, merci beaucoup

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/09/2014, 20h29
  2. Modifier la mise en forme d'un tableau avec une macro
    Par Wouittone dans le forum VBA Word
    Réponses: 3
    Dernier message: 22/07/2013, 09h02
  3. [XL-2003] Ouvrir document word depuis excel avec boite de dialogue
    Par gtkill dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/08/2011, 17h50
  4. Réponses: 4
    Dernier message: 24/04/2008, 09h31
  5. Enregistrement d'un fichier Word à partir d'une macro excel
    Par GTBouli dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/04/2008, 12h19

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