Enregistrement avec nomenclature précise

Résolu
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

5 réponses

  1. m@rina Messages postés 27633 Date d'inscription   Statut Modérateur Dernière intervention   11 564
     
    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
    0
  2. Anthonnyy
     
    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
    0
  3. m@rina Messages postés 27633 Date d'inscription   Statut Modérateur Dernière intervention   11 564
     
    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
    0
  4. Anthonnyy
     
    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 ?
    0
    1. Anthonnyy
       
      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
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. m@rina Messages postés 27633 Date d'inscription   Statut Modérateur Dernière intervention   11 564
     
    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 :
    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
    0
    1. Anthonnyy
       
      merci pour les conseils et de m'avoir permis de réaliser ce que je voulais
      0