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 Word Discussion :

[VBA-W]Enregistrer une copie d'un document sous le format de son choix


Sujet :

VBA Word

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2003
    Messages : 171
    Points : 97
    Points
    97
    Par défaut [VBA-W]Enregistrer une copie d'un document sous le format de son choix
    Bonjour


    J'essay de faire une procédure permettant d'enregistrer le document word courant dans le format de mon choix sans toucher au document actuel.

    Par exemple mon fichier est maquette.dotm je veux enregistrer le document en docx avec le nom de mon choix mais continuer à travailler sous mon maquette.dotm

    VOici mon code actuel qui ne me permet pas de travailler sous maquette.dotm

    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
     
    Sub Export_Word(NomFichier As String, NomDir As String, Compatible2k3 As Boolean)
     
        Dim NomFic As String
        NomFic = NomDir
     
        'Change de répertoire
        ChangeFileOpenDirectory NomDir
     
        'Init Nom Fichier
       If Compatible2k3 Then
            NomFic = NomFic & "\" & NomFichier & ".doc"
             ActiveDocument.SaveAs fileName:=NomFic, FileFormat:= _
            wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
            True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
            False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False
        Else
            NomFic = NomFic & "\" & NomFichier & ".docx"
             ActiveDocument.SaveAs fileName:=NomFic, FileFormat:= _
            wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
            :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
            :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False
       End If
     
     
    End Sub
    la seule solution que je vois et de le réenrgistrer par dessus en maquette.dotm si quelqu'un à une solution plus propre

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Regarde copyas dans l'aide

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2003
    Messages : 171
    Points : 97
    Points
    97
    Par défaut
    le problème de copyas est qu'il ne permet pas de changer de format il copie le document avec le format en cours. C'est pour cela que j'avais spécifié en mettant son format.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Autant pour moi, je ne l'ai même pas retrouvé dans l'aide.
    Regarde plutôt SaveAs, il y a une page à lire mais c'est instructif.
    Tu enregistres d'abord ton doc en tant que Doc, puis tu l'enregistres avec SaveAs
    A+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2003
    Messages : 171
    Points : 97
    Points
    97
    Par défaut
    si tu regardes le code que j'ai mis j'utilise déjà le saveas pour l'aide je l'ai déjà lu mais rien ne me convient dans mon cas pour info je pense que tu confonds copyas avec savecoopyas qui n'existe que sous excel et qui ne gére pas les formats.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    SaveAs te conduit à la propriété saveFormat qui affiche... tout ça

    Citation Envoyé par L'aide
    SaveFormat, propriété
    Voir aussi S'applique à Exemple Particularités
    Renvoie le format de fichier du convertisseur de document ou de fichier spécifié. Il s'agit d'un nombre unique spécifiant qu'il s'agit d'un convertisseur de fichiers externe ou d'une constante WdSaveFormat. Type de données Long en lecture seule.

    Les constantes WdSaveFormat possibles sont les suivantes :
    wdFormatDocument
    wdFormatDOSText
    wdFormatDOSTextLineBreaks
    wdFormatEncodedText
    wdFormatHTML
    wdFormatRTF
    wdFormatTemplate
    wdFormatText
    wdFormatTextLineBreaks
    wdFormatUnicodeText

    expression.SaveFormat

    expression Obligatoire. Expression qui renvoie l’un des objets de la liste S’applique à.

    Notes
    Pour enregistrer un document dans un format de fichier pour lequel il n'existe aucune constante WdSaveFormat, utilisez la valeur de la propriété SaveFormat correspondant à l'argument FileFormat de la méthode SaveAs.

    Exemples
    Si le document actif est un document RTF (Rich Text Format), cet exemple montre comment l'enregistrer en tant que document Microsoft Word.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If ActiveDocument.SaveFormat = wdFormatRTF Then
        ActiveDocument.SaveAs FileFormat:=wdFormatDocument
    End If
    Cet exemple montre comment créer un document et répertorier dans un tableau les convertisseurs permettant d'enregistrer des documents, ainsi que les valeurs de la propriété SaveFormat qui leur correspondent.

    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
    Sub FileConverterList()
        Dim cnvFile As FileConverter
        Dim docNew As Document
     
        'Create a new document and set a tab stop
        Set docNew = Documents.Add
        docNew.Paragraphs.Format.TabStops.Add _
            Position:=InchesToPoints(3)
     
        'List all the converters in the FileConverters collection
        With docNew.Content
            .InsertAfter "Name" & vbTab & "Number"
            .InsertParagraphAfter
            For Each cnvFile In FileConverters
                If cnvFile.CanSave = True Then
                    .InsertAfter cnvFile.FormatName & vbTab & _
                        cnvFile.SaveFormat
                    .InsertParagraphAfter
                End If
            Next
            .ConvertToTable
        End With
     
    End Sub
    Cet exemple montre comment enregistrer le document actif au format WordPerfect 5.1 ou 5.2 Fichier secondaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveDocument.SaveAs _
        FileFormat:=FileConverters("WrdPrfctDat").SaveFormat
    Bonne lecture
    A+

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2003
    Messages : 171
    Points : 97
    Points
    97
    Par défaut
    Merci mais cela ne me permet toujours pas de faire ce que je veux certes ont choisi le format avec saveformat mais cela revient au même que de le spécifier en argument dans saveas.

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    A force de lire ta question je crois que je viens de comprendre (cépasûr)
    Tu as plusieurs dot, ayant chacun des styles définis.
    Tu as un doc ouvert que tu voudrais enregistrer selon le modèle de ton choix...
    Si c'est ça, tu as autre une solution...
    Consite à sélectionner un modèle de style, modèle que tu auras préalablement enregistré.
    Tu enregistes ton fichier sous un autre nom et tu lui appliques le style de ton choix.
    Tape "Création d'un nouveau style" dans l'aide intuitive.
    Bonne lecture
    Mais dis-moi si j'ai bien compris, ce coup-ci
    A+

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 58
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    ma question n'est peut être pas appropriée mais bon, je la pose quand même :
    Comment faîtes-vous pour que la librairie word vous propose ce format : Je suppose que cela correspond au format openXML...?
    Parce que perso, je ne peut disposer que de ce format : Cela doit venir du fait que la librairie d'import de word que j'utilise est la librairie Word 11, et donc pas le word 2007.
    J'ai cependant un plugin qui me permet d'enregistrer sous docx depuis word 2003, la question concrète est donc : comment faire pour pouvoir enregistrer sous docx depuis le code en n'ayant pas word 2007 installé sur le pc...?
    Si une âme charitable passe par ici...
    Merci

Discussions similaires

  1. [XL-2003] Enregistrer une copie sans VBA
    Par guidav dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/07/2013, 14h08
  2. [VBA E] Faire une copie .pdf d'une feuille excel
    Par sethipremier dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/04/2007, 07h53
  3. [VBA-E] Enregistrer une fonction par le code
    Par Scritch852 dans le forum Excel
    Réponses: 2
    Dernier message: 03/04/2007, 10h53
  4. [VBA-E] Sauvegarder une copie non protégée lors de la sauvegarde
    Par thomasvst dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/03/2007, 14h01
  5. [VBA-W] Faire une fusion dans un document ouvert
    Par zahui_eric dans le forum VBA Word
    Réponses: 6
    Dernier message: 22/01/2007, 12h41

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