Champs nom du fichier sans extension et maj auto

Bonjour a tous!

J'ai trouvé sur le net la fonction "champs" dans word que je ne connaissais pas "je ne pratique pas beaucoups".

Il s'avère que je souhaiterais faire une en-tête avec en rappelle le nom du fichier.

Je test donc ça, ça marche très bien a 2 petits détails.

Le champs affiche l'extension du fichier...

Nom_du_fichier.docx

Est-ce possible d'avoir seulement le nom ?

Et autre soucis le fichier sera une trame vierge, et quand je fais un copier coller et que je change le nom du fichier, a l'ouverture il garde le nom de l'ancien fichier, il faut forcer la mise a jour en manuel.

Est-il possible de forcer word a mettre a jour a l'ouverture du fichier ?

Merci d'avance a vous pour vos réponses

Bonjour Mickou14

Navré pour toi, mai Microsoft s'en moque de ses utilisateurs, il préfère que ça aille vite plutôt que cela fonctionne

https://support.microsoft.com/fr-fr/topic/le-champ-nom-de-fichier-ne-pas-automatiquement-%C3%A0-jour...

@+

Bonjour Bruno,

effectivement je crois que je vais devoir me résigner et faire CTRL+A puis F9 à chaque ouverture.

car la macro en question marche très bien si on la place dans "ThisDocument" et qu'on l'exécute à l'ouverture du fichier, tout les champs se mettent à jour correctement à l'ouverture.

mais évidemment jamais rien se passe comme prévu ... ^^ lol

ça marche si on ouvre le fichier depuis Windows, par contre si le document en question, vous l'ouvrez depuis un hypertexte dans excel (ce qui est mon cas) ça ne marche plus.

Excel se met en attente comme une macro buggé, on voit un onglet WORD s'ouvrir dans la barre de tache mais il ne s'affiche pas, et quand on clique dessus pour ouvrir

excel renvoie l'erreur:

bug 4248

et le débogage montre ça:

debogage

En regardant sur Microsoft ils disent:

Erreur d’exécution '4248' :

Cette commande n’est pas disponible car aucun document n’est ouvert.

De ce que j'en comprends, en passant par un lien hypertexte dans Excel, VBA exécute le code placé dans le document Word avant même d'ouvrir le document en question ...

je vois que ça, car encore une fois la macro marche très bien en ouvrant le document depuis Windows.

Bonjour,

Chez moi j'ai aucun soucis de ce type. Est-il possible de nous transférer les documents (EXCEL et WORD) ? En nous indiquant le champ qui doit s'update. Ci-contre mes codes dans mon classeur EXCEL avec le lien hypertexte vers mon fichier WORD dans la cellule active et dans le module ThisDocument de mon document WORD (idem que le lien posté par BrunoM45) :

Sub WORD()
    Set APP = CreateObject("Word.Application")
    APP.documents.Open ActiveCell.Hyperlinks(1).Address
    APP.Visible = True
End Sub

Private Sub Document_Open()
Dim aStory As Range
Dim aField As Field
For Each aStory In ActiveDocument.StoryRanges
    For Each aField In aStory.Fields
       aField.Update
    Next aField
Next aStory
End Sub

Si j'ai bien compris vous cherchez à ouvrir un fichier WORD depuis EXCEL, puis update le champ à partir de son nom ? Mais votre lien hypertexte est mis à jour également ? Car si vous changez le nom du fichier WORD, alors il ne faut pas oublier de changer le nom du lien hypertexte.

Un peu de mal à voir comment cela fonctionne et ce que vous souhaitez obtenir au final.

Cdlt,

Bonsoir Ergotamine,

je viens de vérifier avec un fichier excel vierge et toujours pareil,

j'ai juste crée dans un fichier vierge excel dans la cellule A1 le texte "AAAA" auquel j'ai attribuer un lien hypertexte vers le fichier.docx

je valide.

je clique sur AAAA le fichier docx qui contient la macro s'ouvre dans une fenetre en bas mais excel mouline et quand je clique sur l'onglet word de la barre des taches il me montre l'erreur que j'ai montré plus haut.

j'ai mis ton code pourtant.

si je ne met aucun code dans le document Word, ça s'ouvre très bien.

après peut-être que je ne colle pas le code au bout endroit dans Word ? mais ça m'étonnerait car encore une fois si j'ouvre le fichier via windows la macro s'exécute et le fichier se met bien à jour.

c'est vraiment si je tente d'ouvrir se même fichier via un lien hypertexte Excel que ça ne marche pas...

pour montrer j'ai fais une petite vidéo.

si ça se trouve c'est ma version d'excel et word "non active" , du coup les deux ne communique pas entres eux, je n'ai pas essayé le code du document word au travail.

Pour voir la vidéo:

https://www.youtube.com/watch?v=Kramd3akrIE

Bonjour,

En fait ce qui me gêne le plus c'est que vos fichiers contiennent des macros, mais qu'ils ne sont pas enregistrés sous documents contenant des macros (docx et xlsx). Le code EXCEL est classé sous le Module1, celui de WORD sous ThisDocument.

Je vous joins mes fichiers pour que vous testiez chez vous. Il n'y a pas de lien hypertexte sous le classeur 1, je vous laisserais l'intégrer quand vous aurez l'emplacement du fichier WORD.

Cdlt,

4classeur1.xlsm (11.86 Ko)

Ha mais il faut quand même une macro dans le module excel !!!

bah je ne comprends plus rien pour le coup

moi l'exemple que j'ai montré c'est une feuille WORD avec votre macro de mise à jour intégré dans WORD dans this document, et je pars du principe que c'est suffisant ... car quand je l'ouvre depuis windows ça marche !

pourquoi en l'ouvrant depuis un hypertexte d'un fichier vierge excel celà bug? c'est bien la même chose ! on appelle le document word

Bonjour,

La macro ne sert qu'à ouvrir le document WORD via le lien hypertexte présent dans la cellule. Tout le reste se fait via la macro fournie présente dans le WORD que vous utilisez.

Les champs se mettent-ils à jour sur les documents transmis ? Qu'obtenez-vous ?

Cdlt,

Oui les champs se mettent bien a jour et je n'ai plus l'erreur.

Par contre si vous "supprimé" le module 1 de la feuille excel, et essayez d'ouvrir a nouveau le word depuis la celulle ou i est inscrit "doc" normalement vous aurez le même message d'erreur que moi

Bonjour,

Aaaaah oui je comprend un peux mieux votre design. En fait vous ne pouvez pas faire ça. J'essaie de m'expliquer : dans votre design, vous ouvrez un fichier WORD SAUF que le code de ThisDocument s’exécute AVANT l'affichage du document. Si vous regardez mieux, seul l'éditeur VBA est ouvert, mais pas l'application/document WORD.

C'est pour ça qu'il est nécessaire d’initialiser (Set APP = CreateObject("Word.Application")) et de rendre visible l'application WORD (APP.Visible = True) depuis le classeur EXCEL.

Sans être expert, je pense que le double clic sur un document WORD lance l'appel d'initialisation. Sans initialisation de l'application en question, on ne peux rien ouvrir qui est rattaché au fichier, d'où le message d'erreur.

En espérant que mes explications vous permettront d'y voir un peu plus clair.

Cdlt,

Et bien vue le message d'erreur effectivement j'en avais compris que le code de this document s'exécutait avant l'ouverture de word. Mais ça me paraissait absurde car je voyais pas comment le code pouvait s'exécuter avant même que le document soit ouvert ... 🙄.

Oui c'est vraiment pas pratique pour le coup 😐. Car mes documents dans mon fichier d'origine ont des emplacement variables, bon je vais réussir a adapter votre code qui est placé dans le module 1 mais c'est un code supplémentaire encore a placer juste pour quelque chose qui devrait anormalement s'exécuter tout seul ^^.

Enfin j'imagine que microsoft aurait pu prévoir se cas de figure. Enfin déjà ils auraient pu proposer une option word pour mettre a jour les champs a l'ouverture du fichier .

en tout cas merci du coup j'ai quand même une solution a mon problème

Ps: je vais faire remonter le sujet des liens hypertextes sur le code que vous m'avez concocté qui est une bénédiction pour moi j'ai un petit cas de figure que je voudrais vous énoncer.

Rechercher des sujets similaires à "champs nom fichier extension maj auto"