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

Macros et VBA Excel Discussion :

Enregistrer et renommer un fichier Word


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 21
    Par défaut Enregistrer et renommer un fichier Word
    * Bonjour, *

    Je suis sous excel et je voudrais enregistrer un document word créé après publipostage.

    Autrement dit, je voudrais enregistrer le fichier "Lettres types1.docx" qui est créé lorsque l'on fusionne le publipostage. (ce fichier n'est pas encore enregistré, puisqu'il vient juste d'être généré).

    Enfin, cerise sur le gâteau, l'enregistrement du fichier "Lettres types1.docx" doit se faire avec renommmage du type "cellule A1" espace "cellule A2" d'une feuille excel.

    Je vous joint des petits fichiers pour exemple de ce que j'ai fait mais çà bug sur l'enregistrement et le renommage.
    Je n'ai même pas été plus loin pour la récupération des cellules XL pour mettre dans le nom vu que je n'arrive déjà pas à enregistrer.

    Fichiers :
    Base publi.xls : doc Excel avec une base de client. On coche une ligne qui sera envoyer pour le publipostage.
    Courrier original.docx : document du courrier original (comme son nom l'indique!!) servant pour le publipostage.

    Par avance, un GRAND MERCI.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        appWord.ActiveDocument.SaveAs Filename:="Lettre1.doc", FileFormat:= _
            wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
            True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
            False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False
    PS. J'ai oublié la cerise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        appWord.ActiveDocument.SaveAs Filename:=[A1] & " " & [A2] & ".doc", FileFormat:= _
            wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
            True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
            False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 21
    Par défaut
    Le gâteau est délicieux et la cerise succulente.

    Merci çà marche parfaitement bien.

    Petit complément (la chantilly!!) :
    où est-ce que je modifie mon chemin d'enregistrement de mon fichier, car pour le moment, il me l'enregistre dans "Mes documents"?

    y-a-t-il un moyen de de contrôler et d'informer si le fichier existe déjà, car je me rend compte que si le fichier existe, il écrase l'ancien?
    2 solutions possible : 1/avertir avant d'écraser l'ancien 2/ rajouter un petit numéro du genre version 1, version 2...

    Oulàlà j'entend d'ici l'indigestion qui se profil.

    Enorme merci Môssieur Daniel!

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Oui, une indigestion à l'heure de l'apéritif ! J'ai opté pour la facilité. Si le fichier existe, j'ai ajouté la date et l'heure au format aa-mm-dd hhmmss. Tu dois modifier le chemin dans lequel sont enregistré les fichiers. C'est la ligne :

    (n'oublie pas le "\" à la fin.)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Dim Chemin As String, NomFich As String
        Chemin = "c:\temp\"
        NomFich = [A1] & " " & [A2] & ".doc"
        If Dir(Chemin & [A1] & " " & [A2] & ".doc") <> "" Then
            NomFich = Left(NomFich, Len(NomFich) - 4) & Format(Now, "yy-mm-dd hhmmss") & ".doc"
            MsgBox "Le fichier existe déjà et sera enregistré sous : " & NomFich
        End If
        appWord.ActiveDocument.SaveAs Filename:=NomFich, FileFormat:= _
            wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
            True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
            False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 21
    Par défaut
    Il y a un problème, le changement de chemin n'est pas pris en compte.

    Sauf si j'ai fait une erreur voici mon code à ma sauce (décidément, je suis dans la gastronomie aujourd'hui!)

    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
     '** Sauvegarde du fichier Word **
            'Information du chemin de sauvegarde
            Chemin = "C:\Documents and Settings\ArDenis\Desktop\JURIBASE XL\Méthode publipostage\SAUVEGARDE WORD\"
     
            'Information du nom du fichier
            nomfich_part1 = Worksheets("données").Cells(2, 2)
            nomfich_part2 = Worksheets("données").Cells(2, 3)
            NomFich = nomfich_part1 & " " & nomfich_part2 & ".doc"
     
        If Dir(Chemin & nomfich_part1 & " " & nomfich_part2 & ".doc") <> "" Then
            NomFich = Left(NomFich, Len(NomFich) - 4) & Format(Now, "yy-mm-dd hhmmss") & ".doc"
            MsgBox "Le fichier existe déjà et sera enregistré sous : " & NomFich
        End If
        appWord.ActiveDocument.SaveAs Filename:=NomFich, FileFormat:= _
            wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
            True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
            False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False
    Pour le reste çà m'a l'air pas mal.

    Et pour info (vu que je n'ai pas pu tester comme çà ne marche pas!), à quoi sert le "-4" ici =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Left(NomFich, Len(NomFich) - 4) & Format(Now, "yy-mm-dd hhmmss") & ".doc"
    Merci

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Je me donnerais des claques


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            'Information du nom du fichier
            nomfich_part1 = Worksheets("données").Cells(2, 2)
            nomfich_part2 = Worksheets("données").Cells(2, 3)
            NomFich = nomfich_part1 & " " & nomfich_part2 & ".doc"
     
        If Dir(chemin & nomfich_part1 & " " & nomfich_part2 & ".doc") <> "" Then
            NomFich = Left(NomFich, Len(NomFich) - 4) & Format(Now, "yy-mm-dd hhmmss") & ".doc"
            MsgBox "Le fichier existe déjà et sera enregistré sous : " & NomFich
        End If
        appWord.ActiveDocument.SaveAs Filename:=chemin & NomFich, FileFormat:= _
            wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
            True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
            False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False

  7. #7
    Membre averti
    Femme Profil pro
    Assistante maitrise d'oeuvre
    Inscrit en
    Janvier 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistante maitrise d'oeuvre
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2019
    Messages : 17
    Par défaut
    Citation Envoyé par Daniel.C Voir le message
    Bonjour,

    Essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        appWord.ActiveDocument.SaveAs Filename:="Lettre1.doc", FileFormat:= _
            wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
            True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
            False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False
    PS. J'ai oublié la cerise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        appWord.ActiveDocument.SaveAs Filename:=[A1] & " " & [A2] & ".doc", FileFormat:= _
            wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
            True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
            False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False
    Bonjour

    Je pense être dans ce cas similaire mais je n'ai rien qui s'enregistre avec ce code.
    Avec ma macro je créé un Word, écrit avec les données de mon Excel.
    Une fois que l'écriture est finie, je voudrai enregistrer ce word et le fermer.
    Votre cerise à l'air d'autant plus délicieuse que j'ai plus d'un word à créer, et fermer et de renseigner leur nom d'après la case A1 d'un onglet en particulier simplifierai beaucoup mon code.
    En gros pour chaque onglet je créé un word mais actuellement, si je reste dans une seule boucle d'un seul word je ne dépasse pas cette étape enregistrement (et encore moins fermer pour passer au prochain Word actif)
    Des inspiration?
    Je ne suis pas dans le bon cas de figure?

    Fanny

    (mon cookie manque d'un peu de sucre)

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Intervenir dans une discussion initiée en 2012 a ses risques, à commencer par le fait que personne, sauf moi, ne risque de lire ton message. Le mieux serait d'initier une nouvelle discussion.

    Cordialement.

    Daniel

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

Discussions similaires

  1. [WD-2010] Macro enregistrement auto d'un fichier Word
    Par dombil dans le forum VBA Word
    Réponses: 0
    Dernier message: 08/09/2011, 14h58
  2. Lier un fichier Word à chaque enregistrement de la base
    Par STELLLA dans le forum Bases de données
    Réponses: 3
    Dernier message: 03/12/2008, 22h35
  3. Réponses: 1
    Dernier message: 20/11/2008, 12h36
  4. 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
  5. [VBA] Problème enregistrement mise en forme fichier word
    Par guenfood dans le forum VBA Word
    Réponses: 1
    Dernier message: 07/06/2006, 14h10

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