Macro pour enregistrement fichier Word

Résolu
Yves01 Messages postés 3 Statut Membre -  
 sg -
Bonjour et merci d'avance pour votre aide.
Je désirerai créer une Macro dans word "systeme d'exploitation windows" dont la fonctionnalité serait "d'enregistrer sous" un fichier word qui serait nomé automatiquement. Le nom du fichier serait sous la forme de la date d'enregistrement au format suivant "YY,MM,DD.doc" .
Je vous remercie pour votre aide.
Yves

8 réponses

  1. toto
     
    Bonjour, moi je voudrai enregistre mon document Excel avec un nom qui se trouve dans une cellule comment je peu faire ?

    Merci de me répondre
    6
  2. surfer59
     
    Bonjour,

    Voici un exemple de macro qui fait cela :
    ActiveDocument.SaveAs FileName:=Format(Date, "yy") & "," & Format(Date, "mm") & "," & Format(Date, "dd") & ".doc"

    Cette macro enregistre le document dans le dossier courant (Souvent Mes documents). Pour changer de dossier, mettre avant la ligne :
    ChangeFileOpenDirectory "C:\dossier à enregistrer"
    3
    1. Yves01 Messages postés 3 Statut Membre
       
      Merci pour la solution elle fonctionne trés bien. Je connais une autre difficulté au sujet de cette macro. Il s'agirait d'incorporer aussi au nom du fichier une saisie qui se trouve dans ce fichier, or lorsque je suis en train d'enregistrer la macro je n'ai plus la main pour sélectionner (copier) le texte désiré. Cette saisie n'est jamais la même, en fait ce qui importe c'est de copier une saisie qui est à un endroit précis dans le fichier word et d'aller la coller à la suite de la date dans le nom. (précédente question)
      0
    2. J'en ai pas
       
      Bonjour, je sais que ça 2 ans que tu as répondu à cette question mais, je t'ai trouvé par google. Lorsque j'utilise la fonction Format dans une macro Word, j'obtiens toujours le message: Erreur de compilation, Variable ou procédure attendue, et non un module. Pourquoi?
      0
  3. isabelle
     
    Bonjour
    La réponse à la question de Yves m'a beaucoup aidée. Personnellement je souhaiterais que ma macro ouvre la boîte "enregistrer sous" pour que la personne saisisse le nom de son fichier mais que le dossier d'enregistrement soit déjà sélectionné grace à "ChangeFileOpenDirectory "C:\dossier à enregistrer".
    Comment écrire cette macro avec peut-être ActiveDocument.SaveAs FileName etc... pour qu'elle laisse l'utilisateur saisir le nom ?
    Sous Excel j'ai trouvé avec :
    fichier = Application.GetSaveAsFilename(filefilter:="Classeur XLS (*.xls),*.xls", Title:=" ici et pas ailleurs")
    Evidemment sous WORD c'est différent !!!grrr
    merci
    1
    1. haev
       
      Ma macro pour sauver un fichier dont on rentre le numéro sur invite (4 caractères), sous le bom BC00+champ saisi ; le champ saisi (numéro de commande en l'occureence) est également rappelé sur le formulaire auquel cette macro est associée :

      Sub SAUVE_COMMANDE()
      '
      ' SAUVE_COMMANDE Macro
      ' Macro enregistrée le 05/04/2002 et 28/8/06 par XXX
      ' demande le n° de commande pour le concaténer ds le nom de fichier
      ' pb : si le fichier existe déjà il ne dit rien, et il écrase l'existant !
      ' confirmé par le support Microsoft, il faut tester avant...
      ' https://support.microsoft.com/en-us
      ' à travailler pour numéro auto : https://support.microsoft.com/en-us

      ' si le document ne contient pas de champ (formulaire) on sort
      If ActiveDocument.FormFields.Count = 0 Then
      End
      End If

      ' si erreur on le dit et on décrit
      On Error GoTo Errhandler

      Dim NumeroDeCommande As Integer
      Dim MessageExiste As String

      choix:
      Message = "Entrez le numéro de commande sur 4 chiffres maxi (suivant chrono classeur):"
      titre = "Numéro chronologique du Bon de Commande"
      NumeroDeCommande = InputBox(Message, titre)

      ' Le numéro de commande est inséré dans le premier champ du bon de commande, pour garantir la cohérence
      ActiveDocument.FormFields("ref").Result = NumeroDeCommande


      ' Initialisation du message de fichier existant
      MessageExiste = "Le fichier BC00" & NumeroDeCommande & " existe déjà. Voulez vous le remplacer ?"

      ChangeFileOpenDirectory "P:\Administratif\1-BONS_DE_COMMANDE\"

      ' Check if the file exists.
      If Dir("BC00" & NumeroDeCommande & ".doc") = "" Then
      ' If file does not exist, save without prompting.
      ActiveDocument.SaveAs FileName:="BC00" & NumeroDeCommande & ".doc", FileFormat:=wdFormatDocument
      Else
      ' If file does exist, prompt with warning message.
      ' Check value of button clicked in message box.
      Select Case MsgBox(MessageExiste, vbYesNoCancel + vbExclamation)
      Case vbYes
      ' If Yes was chosen, save and overwrite existing file.
      ActiveDocument.SaveAs FileName:="BC00" & NumeroDeCommande & ".doc", FileFormat:=wdFormatDocument
      Case vbNo
      ' si réponse non, on redemande un numéro
      GoTo choix
      Case Else
      ' If Cancel was chosen, do nothing.
      End Select
      End If

      Errhandler:

      If Err <> 0 Then
      MsgBox Err.Description
      End If

      End Sub
      0
  4. Isabelle
     
    Voilà ce que j'avais fait pour enregistrer systématiquement dans un dossier...

    Sub enregist()
    '
    ' enregist Macro
    ' Macro WORD enregistrée le 06/11/2006 par Isabelle AGUIRREGABIRIA - Is@tice
    'Sauve là ou je veux

    '
    ChangeFileOpenDirectory "C:\Documents and Settings\isabelle\Bureau\bazar\"
    Application.Dialogs.Item(wdDialogFileSaveAs).Show

    End Sub
    1
    1. sd
       
      merci merci c'est la seule bonne réponse
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Burnout69
     
    Bonjour,

    mon problème est un peu similaire !

    Je réalise un publipostage avec les données venant de Access. Un des champs est la référence : "REF"

    Je voudrais, une fois la fusion réalisée et lorsque j'appuie sur "enregistrer sous" :

    - avoir un chemin prédéfini : E:/TEMP
    - que le nom de fichier soit la référence "ref".

    Suis perdu. Pourriez m'aider SVP ?
    0
  7. Burnout69
     
    merci ISabelle,

    cela fonctionne bien pour définir le chemin de sauvegarde !

    Mais comment définir que le nom de sauvegarde soir [ref].doc ?
    0
    1. sg
       
      Application.Dialogs.Item(wdDialogFileSaveAs).name="nom.doc"
      0
  8. sstteeff
     
    Bonjour (avec un an de retard...)

    J'ai bien lu et appliqué tous vos conseil mais voilà ce qui se passe chez moi suite à cette macro

    Sub TEST_SAVE()
    '
    ChangeFileOpenDirectory "C:\Documents and Settings\STEPHANE\Mes documents\COURRIER\BROUILLONS\"
    Application.Dialogs.Item(wdDialogFileSaveAs).Show
    ActiveDocument.SaveAs FileName:="SDR" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & Format(Time, "hhmm") & ".doc" '

    End Sub
    ' TEST_SAVE Macro
    ' Macro enregistrée le 06/05/2008 par STEPHANE

    Alors, le nom du fichier est impeccable comme je veux (c'est à dire de type année/mois/jour/heure/minute précédé de mes initiales SDR) mais le problème est qu'il va toujours placer l'enregistrement dans le dossier de mes modèles et pas dans le dossier "Brouillons' là où je veux qu'il aille ?

    Quelqu'un(e) aurait un ti tuaux pour moi ?

    Merci d'avance !

    Steph
    0
    1. chrisbxn
       
      essaye avec directement

      ActiveDocument.SaveAs FileName:="C:\Documents and Settings\STEPHANE\Mes documents\COURRIER\BROUILLONS\SDR" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & Format(Time, "hhmm") & ".doc"

      c'est plus direct et tu peux effacer les lignes

      ChangeFileOpenDirectory "C:\Documents and Settings\STEPHANE\Mes documents\COURRIER\BROUILLONS\"
      Application.Dialogs.Item(wdDialogFileSaveAs).Show
      0
    2. Myr
       
      Bonjour,
      J'ai exactement le même problème de document qui va dans mes modèles et non dans le repertoire que je mentionne dans la macro. SVP auriez vous une idee?????
      0
  9. kikialine76
     
    Bonjour,

    Je souhaite qu'une copie d'un formulaire word (version 2007) s'enregistre directement dans un dossier.

    J'ai essayé avec les explications ci-dessus mais ça ne fonctionne pas sur word 2007.

    Merci de votre aide.
    0