Enregistrement avec nomenclature précise
Résolu
anthonnyy
-
Anthonnyy -
Anthonnyy -
Bonjour,
j'utilise à l'heure actuelle un document word formulaire.
Je souhaite savoir s'il existe une fonction comme dans excel permettant d'enregistrer le document sous un répertoire défini avec une nomenclature précise
voici ce que j'utilise dans excel
Dim Fichier As String 'défini le répertoire et le nom du fichier à enregister
Application.DisplayAlerts = False
Fichier = "C:\Répertoire\" & "Acceptation " & Range("F23") & "_" & Range("J23") & " " & Range("H8")
ThisWorkbook.SaveAs Fichier, xlOpenXMLWorkbook
la nomenclature du fichier sauvegardé se fait en utilisant le contenu de certaines cellules.
Dans le document word je pourrais donc insérer un objet excel mais j'ignore si ce code VBA fonctionnera vu que les cellules excel seront en tant qu'objet dans le doc word.
quelqu'un sait si ça fonctionne ou un code permettant d'obtenir le même résultat ?
merci
j'utilise à l'heure actuelle un document word formulaire.
Je souhaite savoir s'il existe une fonction comme dans excel permettant d'enregistrer le document sous un répertoire défini avec une nomenclature précise
voici ce que j'utilise dans excel
Dim Fichier As String 'défini le répertoire et le nom du fichier à enregister
Application.DisplayAlerts = False
Fichier = "C:\Répertoire\" & "Acceptation " & Range("F23") & "_" & Range("J23") & " " & Range("H8")
ThisWorkbook.SaveAs Fichier, xlOpenXMLWorkbook
la nomenclature du fichier sauvegardé se fait en utilisant le contenu de certaines cellules.
Dans le document word je pourrais donc insérer un objet excel mais j'ignore si ce code VBA fonctionnera vu que les cellules excel seront en tant qu'objet dans le doc word.
quelqu'un sait si ça fonctionne ou un code permettant d'obtenir le même résultat ?
merci
A voir également:
- Nomenclature word
- Word 2013 - Télécharger - Traitement de texte
- Tableau word - Guide
- Espace insécable word - Guide
- Word et excel gratuit - Guide
- Supprimer une page word - Guide
5 réponses
Bonjour,
Plutôt que de poser cette question, pourquoi ne testes tu pas ?
Bon, je peux néanmoins te dire que ton code est du pur Excel, et qu'il ne sera pas compris par Word.
Donc, si tu veux faire une macro permettant d'enregistrer tes fichiers avec un nom provenant d'un élément quelconque de ton doc Word, c'est possible. Reste à déterminer quel est cet élément.
m@rina
Plutôt que de poser cette question, pourquoi ne testes tu pas ?
Bon, je peux néanmoins te dire que ton code est du pur Excel, et qu'il ne sera pas compris par Word.
Donc, si tu veux faire une macro permettant d'enregistrer tes fichiers avec un nom provenant d'un élément quelconque de ton doc Word, c'est possible. Reste à déterminer quel est cet élément.
m@rina
Bonjour,
avec excel ça semble "simple" vu que pour chaque valeur intéressante on a une cellule.
du coup à chaque fois je bascule des documents d'origine word sous leur équivalent excel en perdant parfois de la convivialité (ex : en basculant mon document type sous excel, je fais perdre aux utilisateurs la convivialité lorsqu'ils intègrent des photos. ils vont devoir jouer avec les hauteurs de lignes sous excel alors que sous word ils n'avaient rien à faire, la hauteur s'adaptait).
ne connaissant pas du tout les macros sous word pourrais tu m'expliquer comment ça fonctionne ? (système de balise devant le texte intéressant ?!)
Anthonnyy
avec excel ça semble "simple" vu que pour chaque valeur intéressante on a une cellule.
du coup à chaque fois je bascule des documents d'origine word sous leur équivalent excel en perdant parfois de la convivialité (ex : en basculant mon document type sous excel, je fais perdre aux utilisateurs la convivialité lorsqu'ils intègrent des photos. ils vont devoir jouer avec les hauteurs de lignes sous excel alors que sous word ils n'avaient rien à faire, la hauteur s'adaptait).
ne connaissant pas du tout les macros sous word pourrais tu m'expliquer comment ça fonctionne ? (système de balise devant le texte intéressant ?!)
Anthonnyy
Oui, c'est plus facile avec Excel.
D'ailleurs, pour tout, Excel est très carré contrairement à Word.
Dans Excel, tu fais référence à une cellule, c'est simple.
Dans Word, on peut faire référence à un mot (ou un groupe de mot) en fonction de sa position dans le texte. Exemple : 1er mot, troisième mot du 2e paragraphe, 3 premiers caractères du 2e mot du 5e paragraphe, etc.
Ce peut être aussi un mot pris dans un tableau (n° colonne, n° ligne).
Tout cela est valable évidemment lorsque le document Word ne change plus.
Mais on peut également utiliser des signets, ainsi que des contrôles de contenu ou champs de formulaire.
J'ai mis quelques exemples ici :
https://faqword.com/index.php/word/faq-word/vba-solutions/630
https://faqword.com/index.php/word/faq-word/vba-solutions/772
https://faqword.com/index.php/word/faq-word/vba-solutions/499
m@rina
D'ailleurs, pour tout, Excel est très carré contrairement à Word.
Dans Excel, tu fais référence à une cellule, c'est simple.
Dans Word, on peut faire référence à un mot (ou un groupe de mot) en fonction de sa position dans le texte. Exemple : 1er mot, troisième mot du 2e paragraphe, 3 premiers caractères du 2e mot du 5e paragraphe, etc.
Ce peut être aussi un mot pris dans un tableau (n° colonne, n° ligne).
Tout cela est valable évidemment lorsque le document Word ne change plus.
Mais on peut également utiliser des signets, ainsi que des contrôles de contenu ou champs de formulaire.
J'ai mis quelques exemples ici :
https://faqword.com/index.php/word/faq-word/vba-solutions/630
https://faqword.com/index.php/word/faq-word/vba-solutions/772
https://faqword.com/index.php/word/faq-word/vba-solutions/499
m@rina
j'ai essayé ceci
Private Sub Document_Close()
Dim nom As String
ChangeFileOpenDirectory "C:\Users\Thony\Desktop\à bosser\"
nom = ActiveDocument.FormFields(25).Result & " " & ActiveDocument.FormFields(1).Result
ActiveDocument.SaveAs FileName:=nom & ".doc", FileFormat:=wdFormatDocument
End Sub
j'ai fait clic droit sur mes 2 champs de formulaire, le premier porte le nom de signet "Texte25" et le second "Texte1"
alors j'ai un début de résultat mais pas satisfaisant
mon champ 1 intègre par exemple "Référence1" et mon champ 2 "FournisseurA"
j'ai bien un nouveau fichier qui s'enregistre dans le bon répertoire mais le nom de ce fichier est "0 Référence1.doc" au lieu de "Référence1 FournisseurA.doc"
aurais tu une idée du dysfonctionnement ?
Private Sub Document_Close()
Dim nom As String
ChangeFileOpenDirectory "C:\Users\Thony\Desktop\à bosser\"
nom = ActiveDocument.FormFields(25).Result & " " & ActiveDocument.FormFields(1).Result
ActiveDocument.SaveAs FileName:=nom & ".doc", FileFormat:=wdFormatDocument
End Sub
j'ai fait clic droit sur mes 2 champs de formulaire, le premier porte le nom de signet "Texte25" et le second "Texte1"
alors j'ai un début de résultat mais pas satisfaisant
mon champ 1 intègre par exemple "Référence1" et mon champ 2 "FournisseurA"
j'ai bien un nouveau fichier qui s'enregistre dans le bon répertoire mais le nom de ce fichier est "0 Référence1.doc" au lieu de "Référence1 FournisseurA.doc"
aurais tu une idée du dysfonctionnement ?
j'ai trouvé le soucis
en fait word ne gère pas avec le nom du signet présent dans ses propriétés mais la position du signet dans le document
du coup mon signet "Texte25" est mon formfields(1) et ainsi de suite.
du coup en ayant compris ça j'obtiens mon résultat voulu.
merci de m'avoir ouvert les yeux sur les possibilités de word
en fait word ne gère pas avec le nom du signet présent dans ses propriétés mais la position du signet dans le document
du coup mon signet "Texte25" est mon formfields(1) et ainsi de suite.
du coup en ayant compris ça j'obtiens mon résultat voulu.
merci de m'avoir ouvert les yeux sur les possibilités de word
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tout d'abord, puisque tu as relevé le nom des signets, pourquoi ne les utilises-tu pas ? C'est plus sûr que de faire confiance aux index.
Sinon, je peux imaginer que le contenu de ton champ premier champ a été effacé... je ne vois pas d'autres raisons.
En tout état de cause met plutôt ceci :
Tu peux d'ailleurs remplacer les noms automatiques des signets pour avoir des mots qui veulent dire quelque chose.
m@rina
Sinon, je peux imaginer que le contenu de ton champ premier champ a été effacé... je ne vois pas d'autres raisons.
En tout état de cause met plutôt ceci :
nom = ActiveDocument.FormFields("texte25").Result & " " & ActiveDocument.FormFields("texte1").Result
Tu peux d'ailleurs remplacer les noms automatiques des signets pour avoir des mots qui veulent dire quelque chose.
m@rina