Macro pour enregistrement fichier Word
Résolu/Fermé
Yves01
Messages postés
3
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
3 juillet 2006
-
1 juil. 2006 à 17:58
sg - 29 mars 2012 à 21:25
sg - 29 mars 2012 à 21:25
A voir également:
- Macro pour enregistrement fichier Word
- Fichier rar - Guide
- Macro word - Guide
- Espace insécable word - Guide
- Supprimer une page word - Guide
- Comment réduire la taille d'un fichier - Guide
8 réponses
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
Merci de me répondre
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"
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"
Yves01
Messages postés
3
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
3 juillet 2006
2 juil. 2006 à 21:41
2 juil. 2006 à 21:41
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)
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
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
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ?
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 ?
merci ISabelle,
cela fonctionne bien pour définir le chemin de sauvegarde !
Mais comment définir que le nom de sauvegarde soir [ref].doc ?
cela fonctionne bien pour définir le chemin de sauvegarde !
Mais comment définir que le nom de sauvegarde soir [ref].doc ?
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
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
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
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