|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : décembre 2005 Messages : 120 ![]() |
Bonjour à tous,
Après bien des recherches je ne trouve pas de solution à mon souci :/ Mon problème : Je dois compléter des fichiers .DOC générés à partir de modèles en word .DOT pour remplir le nom, prénom, adresse etc ... Ces informations seront à importer depuis un fichier TXT. Les informations de ce fichier TXT sont modifiées par une application externe, donc à chaque appel du .DOT, les informations du TXT sont différentes. L'idée serait qu'à la création du .DOC à partir du modèle .DOT, une macro du modèle aille chercher les informations du fichier TXT pour remplir directement le doc. Structure du fichier TXT : aaa;bbb;ccc aaa;bbb;ccc ... Le problème c'est que je n'arrive pas à ajouter de macro dans le .DOT, il est protégé. Y'a-t-il une procédure qui peut être appelé à l'ouverture du .DOT, permettant de lancer une macroVBA ? Ma question serait, est ce que c'est possible ? Si oui auriez vous des pistes ou exemple éventuellement ? D'avance merci |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
On peut envisager deux options, l'une serait de mettre le code dans le normal.dot et de vérifier le modèle qui est utilisé pour lancer ou non le code. Une seconde est l'utilisation d'un complément qui ferait la même chose.
__________________
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
|
|
|
#3 |
![]() ![]() JF JousseaumeInscription : octobre 2007 Messages : 2 390 ![]() |
Salut TheFutureIsNow,
Je pense que dans ton cas, on pourrait aussi envisager un publipostage avec ton .txt comme source de données. Mais le vrai spécialiste du publipostage est Heureux-Oli, et s'il ne te l'a pas proposé c'est que soit plus compliqué soit carrément pas possible. @+ |
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Citation:
Impossible, je ne sais pas, mais j'avais lu ça : Citation:
__________________
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
|
|
|
#5 | |
![]() ![]() JF JousseaumeInscription : octobre 2007 Messages : 2 390 ![]() |
Citation:
@+ |
|
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : décembre 2005 Messages : 120 ![]() |
Merci à tous de vos réponses, je dois avouer être assez paumé dans ce développement.
Je vais essayer de vous expliquer le cas plus en détails : J'ai une appli en VB (je ne peux pas la modifier), qui se charge de créer une multitude de documents types pour chacun des postes en fonction d'un dossier. Ces documents types sont stockés dans un dossier modèle, ce sont des .dot Le programme se charge de créer un .DOC renommé exemple : N°dossier_facture.doc à un autre endroit du disque à partir de ce .DOT. Le problème : le .DOC généré contient des champs grisés à remplir, et ma mission est de les remplir automatiquement. Pour cela, je dois à l'utilisation du .DOT, lire un fichier txt qui contient la référence du dossier, à partir de ce numéro, je dois faire un parcours de plusieurs dossiers pour récupérer un autre .txt et remplir les différents champs en fonction du document type et de ce dernier fichier txt. Ca devrait donc généré un document .DOC, préformaté et prérempli avec les informations du destinataire. Alors pour l'instant je suis devant mes .DOT, je rentre en mode Visual Basic Editor, mais je ne sais pas par où commencer, j'ai 3 catégories : normal, project et template project. Mon idée serait de trouver une méthode qui serait appelé à la création du .DOC par le .DOT. Mais comme je ne connais pas les modèles word et que le VBA je suis assez nouveau, c'est assez délicat. Quelqu'un aurrait une piste de stratégie à adopter ? D'avance merci encore ! |
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
Tu ne réponds pas à nos interrogations sur la structure des données. Si tu as des champs grisés, ce sont peut-être des champs de formulaire. Si tu souhaites faire un document avec un modèle, c'est pas au départ du modèle que tu dois travailler, mais au départ de l'application. Code :
Application.Documents.Add "LeCheminDeMonTemplate.dot" http://heureuxoli.developpez.com/office/word/vba-all/ http://heureuxoli.developpez.com/office/word/vba-word/ http://heureuxoli.developpez.com/off...d/creermodele/
__________________
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
|
|
|
#8 | |||||
|
Membre à l'essai
![]() Inscription : décembre 2005 Messages : 120 ![]() |
Merci à tous de vos réponses, je suis parvenu à avancer un peu via la procédure :
Code :
Ensuite je mets dans le signet les informations que j'ai trouvé via la fonction : Code :
Le problème c'est que j'ai un message d'erreur pour l'édition du signet : Citation:
|
|||||
|
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Inscription : décembre 2005 Messages : 120 ![]() |
EDIT, solution :
ActiveDocument.FormFields("Texte1").Result = "bla bla" |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com