|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : janvier 2005 Messages : 88 ![]() |
Bonjour
Je fais une application excel qui rempli un document word à partir d'un modèle (.dot) Lorsque j'ouvre mon modèle (depuis VBA sous excel) le document est donc une copie du modèle, mais n'a pas de nom (sauf celui attribué par word lui même "titredumodèle1.doc") Je souhaiterais que mon code VBA sous excel, lorsqu'il me rempli et m'affiche le document word, le configure aussi avec un nom de chemin et un nom de fichier. Ce que j'arrive à faire pour le moment : - je rempli le document, puis je configure le chemin de travail - le nom de fichier est rempli par un texte invitant l'utilisateur à mettre le bon nom de fichier - ceci est fait en dur dans le modèle .dot Ce qu'il me manque : - donner un nom de fichier au document généré Ce que j'ai testé : - enregistrer le document généré dès la fin de la conception, mais je ne veux pas que mon code VBA enregistre d'office le document. Je veux que l'utilisateur reste maitre de ce qu'il va enregistrer et quand il va l'enregistrer. Je veux aussi qu'il soit averti lors de la fermeture de word si le document n'avait pas été enregistré. J'espère avoir été clair. Je résume : Il faut que je configure le chemin et le nom du document word créé par VBA depuis excel. merci d'avance |
|
|
00
|
|
|
#2 | ||
|
Membre à l'essai
![]() Inscription : septembre 2007 Messages : 42 ![]() |
Pour la récupération du chemin d'accès à partir d'un .dot, je viens d'être confronté à ce problème récemment.
J'ai utilisé l'instruction suivante et ça marche pour moi : Code :
|
||
|
|
00
|
|
|
#3 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 354 ![]() |
Code :
Options.DefaultFilePath(wdUserTemplatesPath) = "c:\local data\"
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#4 | |
|
Futur Membre du Club
![]() Inscription : janvier 2005 Messages : 88 ![]() |
Citation:
Malheureusement, d'après ce que j'ai pu lire dans la doc, ceci affecte les chemins par défaut de word. Mais je ne veux pas modifier ces éléments. Certe, je pourrais sans doute les lire, les modifier, puis les réécrire comme à l'original mais cela me semble trop risqué et trop peu orthodoxe. Je suis tout simplement étonné qu'il n'y ai pas de solution... Ne pourrais t'on pas influer sur la boite de dialogue 'save as' pour, lorsqu'elle sera appelé par l'utilisateur, elle affiche de manière automatique le nom de fichier que je souhaite ? |
|
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 354 ![]() |
Parce que peu d'utilisateurs de Word vont jusque là.
Word est principalement un traitement de texte et 99 % des utilisateurs l'utilisent comme tel (une simple machine à écrire)
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#6 | ||
|
Futur Membre du Club
![]() Inscription : janvier 2005 Messages : 88 ![]() |
Oui j'en suis tout à fait conscient. Mais malgré tout, il n'est pas rare de trouver des sujets d'utilisateurs qui remplissent ou manipulent word depuis excel. Par contre ces gens là, au mieux, enregistrent le document word sous un nom de fichier qui ne change pas.
Je viens d'essayer à la main : 1- j'ouvre une copie de mon dot 2- je modifie la propriété 'title' de ce document (menu fichier > Propriétés... puis onglet Résumé, champ "Titre :") 3- je clic sur enregistrer Résultat : au moment d'enregistrer, j'obtient par défaut le nom que j'ai saisi en titre Donc ceci me conviendrai... mais... (car il y a un mais) cela ne fonctionne pas lorsque je fait la manip en vba depuis excel !!!! Code :
Une idée ? |
||
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : janvier 2005 Messages : 88 ![]() |
re-
En fait, pour que le titre que je configure dans les builtindocumentproperties soit pris en compte, il faut que je clic absolument sur le bouton OK de la fenêtre propriété de mon document word ! Donc une solution alternative maintenant, serait de "simuler" l'action sur le bouton [ok] de la boite de dialogue 'Propriété' de word, mais là encore je ne sais pas faire... |
|
|
00
|
|
|
#8 | ||
|
Futur Membre du Club
![]() Inscription : janvier 2005 Messages : 88 ![]() |
Salut
ENFIN ! ! ! J'ai trouvé la solution et je pense que ca peut faire cas d'école ! Imaginez que vous remplissiez par excel un document word issu d'un modèle (donc sans titre) Imaginez que vous vouliez inciter l'utilisateur a enregistrer le document sous un nom unique, généré par excel, mais que vous ne voulez pas lui enregistrer son document de manière automatique. Alors il suffit d'utiliser la propriété titre du document. (voir le menu Fichier / Propriétés... dans word) Pour cela 2 possibilités : 1- document.BuiltinDocumentProperties("title") = montitrepardefaut 2- la propriété Dialogs(...) Comme vous pourrez le constater d'après mes posts précédents, la fonction BuiltinDocumentProperties me posait problème car word ne semblait pas en tenir compte. Je me suis donc orienté vers la propriété Dialogs qui m'a apporté le résultat escompté Code :
Merci à tous en attendant et j'espère que ca sera utile à d'autres ! Mes sources : http://support.microsoft.com/kb/181441/fr |
||
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 354 ![]() |
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com