Pb avec vba sous word

Krisstoff Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -  
 sabe -
Je cherche à insérér la
A voir également:

6 réponses

Krisstoff Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   1
 
pardon faute de frappe ... je recommence :
je cherche à insérer la date de création du fichier en bas de page sous trois conditions :
1 - au lancement de word (ca c ok)
2 - lorsque l'on clique sur nouveau document
et enfin
3 - lorsque l'on ouvre un document.
merci d'avance.
1
Ova Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   22
 
Bonjour,

Je ne suis pas sûre d'avoir bien compris mais, si ça peut aider un ti peu :

2 - lorsque l'on clique sur nouveau document
=> insère ton code dans ton Normal.dot, ainsi ce sera valable à chaque nouvelle création de document.

3 - lorsque l'on ouvre un document.
=> si j'ai bien compris, chaque document fera apparaitre sa date de création. Donc, lors de l'ouverture, tu l'auras forcément.... enfin si j'ai bien compris.

Ova
.:: Ki ne teste rien n'a rien ::..
1
Krisstoff Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   1
 
Tu as compris mon intention,désormais je me confronte à un nouveau pb (les autres étant résolus):
Je suis dans l'obligation d'effacer le contenu du pied de page afin d'y ajouter la date de création. (puisque lorsqu'un document est ouvert mon code ajoute automatiquement la date).
Est-il possible de vérifier si la date est présente avant de l'ajouter?
Car à l'heure actuelle, l'utilisateur ne peut pas ajouter qqc ds le pied de page puisque j'en efface le contenu...
J'espère être compréhensif...
merci
0
Ova Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   22
 
Bonsoir,

Oui, je pige en gros ce que tu veux faire.
Tu peux faire ça en utilisant vba. (stockage du texte du pied de page dans une variable, puis trouver dans ce texte une suite de caractères du type ##/##/##, remplacement de cette zone => fonction right, left, instr, etc ... pour manipuler la chaine de caractères)

Maintenant, je ne suis pas certaine que ce soit la bonne solution. Comme tu l'as remarqué, si tu modifies le texte du pied de page par ton code VBA, Word le fait betement, sans s'occuper de savoir s'il y avait déjà quelque chose à cet endroit.
Alors, tout dépend de ce que tu veux faire et surtout pourquoi ?
=> en manipulant le document dès l'ouverture du document, tu interdis à quiconque d'utiliser une date dans un pied de page (par exemple pour indiquer la version à jour, la date d'impression, etc ...). Il sera toujours modifié autoritairement.

=> Si tu lis un document Word, par exemple un document reçu en PJ dans un mail, ton document sera aussi modifié (macro au lancement de Word).

=> et lors de la lecture d'un document, tu modifieras aussi la date de ce document. Il ne s'agira donc plus de ta date de création, mais d'une date de lecture du doc.(macro sur ouverture du document)

Si tu veux que seuls les documents émis par l'utilisateur affichent la date de création en pied de page, à mon avis, il te suffit de modifier ton normal.dot. Tous les nouveaux documents prendront l'instruction en compte. Pour ceux existant déjà, tu écris une autre macro modifiant tous les documents stockés à tel ou tel endroit de ton DD.

Autre solution, tu crées un bouton dans une de tes barres d'outils permettant de modifier le document courant, et y insérer la date de création.

Vala....

Ova
.:: Ki ne teste rien n'a rien ::..
1
Krisstoff Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   1
 
Je te remercie pour tes précisions, juste je voulais te préciser que lorsque j'ouvre un document, c bien la date de création et non pas la date d'ouverture du document qui s'ajoute (variable word : "DATECREATION").
Pour les PJ par mail, cela ne pose pas de pb (l'utilisateur n'a pas accès à internet...).
Et lorsque l'utilisateur referme son document, word lui demande si il veut enregistrer les modif même si il ne fait rien, puisque la date est ajouté automatiquement.Donc si il n'enregistre pas les modif, le pied de page ne sera pas modifié.

Comment fais tu pour stocker le contenu du pied de page dans une variable ? Cela m'intéresse... car si je parviens à stocker le contenu du pied de page dans une variable l'utilisateur aura la possibilité d'utiliser le pied de page (ce qui n'est pas le cas pour le premier et seul utilisateur concerné (pour l'instant)) puisque je ne serais pas obliger d'effacer le contenu avant d'y ajouter la date de création.

Encore merci, si tu as d'autres soluces à mes pb n'hésite pas!!!
0
Ova Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   22
 
Bonjour,
Pour stocker le contenu du pied de page dans une variable, écris un bidule du style :
Dim myStr
myStr = ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Text

Ensuite, tu joues avec le contenu de myStr.

Toutefois (l'est casse-machin la Dame, hein ...:-)) ), tu risques aussi d'avoir des difficultés si le pied de page contient une image. Et ça arrive... (si si !!!)
Pour les PJ mail, c'était juste un exemple. Méfies-toi aussi en ce qui concerne les documents non émis par l'utilisateur, quels qu'ils soient ... parfois le pied de page donne des infos importantes, et là ... ton code va automatiquement l'effacer. Tu n'auras donc pas le temps de les lire, indépendamment de l'écrasement définitif ou non des données.(chemin d'accès complet du document, etc ...)

Vala.... Bon courage, et bonne journée !

Ova
.:: Ki ne teste rien n'a rien ::..
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
plutarque
 
je voudrais récupérer l'adresse (pouvoir la selectionner) d'une cellule d'un tableau sous word avec vba.
1
sabe
 
bonjour a tous en fait j'ai kelkes soucis avec un petit programme ke je dois realiser et ke je c pas trop par où commencer et ca m'embète :'(
en fait c'est une macro qui sera capable de transformer un document word en document XML bien structuré aidez moi svp je ss totalement perdu .. merci
1