OVH Cloud OVH Cloud

WORD + ACCESS + VB = changer un mot

11 réponses
Avatar
thommen ulgar
Bonjour à tous,

J'ai un petit soucis:

Mon application Access (inmodifiable, achetée clefs en mains), génère des
documents Word et remplit le contenu des champs Access dans Word par le
biais de signets. En fait, Access fait une copie d'un document .dot
(template) que j'ai préalablement créé, remplit les endroits où j'ai mit des
signets et enregistre le document une fois le travail fait.
Certain champs contenus dans cette appli Access sont des cases à cocher et
leur interprétation se traduit par un OUI ou par un NON dans Word (en fction
de case cochée ou non cochée dans Access).
Je voudrais que ces OUI ou NON soient remplacés par des caractères spéciaux
dans Word, à savoir une case cochée et une case non cochée (pq faire simple
qd on peut faire compliqué...mais je ne suis pas l'auteur de l'appli
Access).

J'ai essayé en vain de trouver une astuce pour faire cela: j'ai essayé le
correction automatique, mais ça ne marche pas (pcq 1- ce n'est pas une
correction en cours de frappe (c'est Access qui met les données), pcq 2 les
corrections automatiques enregistrées dans le template .dot ne sont pas
reprises dans le .doc). J'ai aussi essayé diverses soluces trouvées sur le
forum mais sans succès.

Le problème vient à mon avis du fait que tout code vb DOIT intervenir une
fois que mon document est complètement créé (tous les champs sont remplis et
Word est au "repos")..

Le 2ème problème est que je suis débutant en vb...

Qqn aurait-il un code à introduire dans le template et qui sera pris en
compte dans le .doc une fois celui-ci completement créé (un document met +/-
30 sec. à se créer).

Si vous avez une idée de solution, je vous serais vraiment très
reconnaissant d'essayer d'être le plus didactique possible...

Un grand merci de m'avoir lu et pour votre aide,

Jacques

10 réponses

1 2
Avatar
Geo
Bonjour thommen ulgar

Il me semble qu'on peut faire ça en vba, mais les spécialistes des champs
(pour faire pousser les soucis) auront sûrement une solution plus simple à
te proposer.

C'est bien dans le document en .doc que tu veux faire ce remplacement, et
ce sont bien des signets dans ce .doc ?
Tu m'excuseras de ces questions mais j'ai un doute en lisant ta
description.

--

A+
Avatar
thommen ulgar
Bonjour Géo et merci pour ton message,

Voilà comment cela fonctionne:
Je crée un document .dot ("document source") dans lequel je mets tous les
signets dont j'ai besoin.
L'application Access ouvre une copie de ce document source, il s'agit donc
d'un .doc. C'est le "document de travail" et il comprend obligatoirement les
signets du "document source".

C'est bien dans ce dernier document que les changements doivent s'effectuer.
Mais je le code devra se trouver dans le .dot et devra se retrouver dans sa
copie .doc

Pour le reste, tu es tout excusé :) Je m'exprime à mon avis de manière un
peu compliquée !

A+

"Geo" a écrit dans le message de
news:%
Bonjour thommen ulgar

Il me semble qu'on peut faire ça en vba, mais les spécialistes des champs
(pour faire pousser les soucis) auront sûrement une solution plus simple à
te proposer.

C'est bien dans le document en .doc que tu veux faire ce remplacement, et
ce sont bien des signets dans ce .doc ?
Tu m'excuseras de ces questions mais j'ai un doute en lisant ta
description.

--

A+





Avatar
Geo
Bonjour thommen ulgar


Bonjour Géo et merci pour ton message,

Voilà comment cela fonctionne:
Je crée un document .dot ("document source") dans lequel je mets tous
les signets dont j'ai besoin.
L'application Access ouvre une copie de ce document source, il s'agit
donc d'un .doc. C'est le "document de travail" et il comprend
obligatoirement les signets du "document source".


C'est là-dessus que j'ai un doute, mais je n'ai pas vérifié.
Si les signets sont dans le .dot se retrouvent-ils aussi dans le doc ?
En fait c'est relativement facile à vérifier :
Ouvrir le . doc et faire F5 Atteindre Signet et on voit si la liste est
vide ou non.

C'est bien dans ce dernier document que les changements doivent
s'effectuer. Mais je le code devra se trouver dans le .dot et devra
se retrouver dans sa copie .doc


Là je ne suis plus.
Tu veux remplacer un signet dont la valeur est oui par un caractère
spécial, ok
Si on le fait par macro, le code de la macro sera dans le modèle si on
veut, pas de problème, mais on ne fait bien le changement qu'une fois dans
le .doc ?

--

A+

Avatar
Bonsoir et bonne fin de semaine à tous,
Moi à un moment donné je pensais qu'un bête rechercher/remplacer de Oui par la case à coché avec le V et un autre avec le Non par la
cose à coché avec X pourrait faire l'affaire.
Mais j'ai peut être rien compris.
Espérant cependant avoir été utile ?
Merci d'avoir lu jusque là.
Avatar
thommen ulgar
Bonjour Geo, encore merci pour ta participation,

Voilà comment cela fonctionne:
Je crée un document .dot ("document source") dans lequel je mets tous
les signets dont j'ai besoin.
L'application Access ouvre une copie de ce document source, il s'agit
donc d'un .doc. C'est le "document de travail" et il comprend
obligatoirement les signets du "document source".


C'est là-dessus que j'ai un doute, mais je n'ai pas vérifié.
Si les signets sont dans le .dot se retrouvent-ils aussi dans le doc ?
En fait c'est relativement facile à vérifier :
Ouvrir le . doc et faire F5 Atteindre Signet et on voit si la liste est
vide ou non.
_____________________

Les signets se retrouvent bien dans le .doc et interréagissent parfaitement
avec Access
J'utilise cette appli ts les jours mais je souhaite modifier le résultat
obtenu.
_____________________
C'est bien dans ce dernier document que les changements doivent
s'effectuer. Mais je le code devra se trouver dans le .dot et devra
se retrouver dans sa copie .doc


Là je ne suis plus.
Tu veux remplacer un signet dont la valeur est oui par un caractère
spécial, ok
_____________________

Je ne veux pas remplacer le signet, je veux remplacer le résultat du signet
après que celui-ci se soit affiché
_____________________

Si on le fait par macro, le code de la macro sera dans le modèle si on
veut, pas de problème, mais on ne fait bien le changement qu'une fois dans
le .doc ?
_____________________

Exactement !

Dans le .doc, Access crée un truc de ce genre-ci. Les signets se trouvent en
réalité juste devant le "OUI" ou "NON".
Laurier: OUI
Erable: NON
Cerisier: OUI
Faune: OUI

Les .doc créés font plusieurs pages, rechercher les "OUI" ou "NON" et
utiliser la fonction "remplacer par" n'est pas envisageable car ces
documents doivent être immédiatement imprimés, sans manipulations.

L'idéal serait donc qu'une macro ou un code vb agisse automatiquement (sans
cliquer sur quoi que ce soit) sur le .doc une fois que celui-ci est
completement créé. Ce code devrait donc fonctionner après un certain laps de
temps (soit qd il sait que le document ne se complète plus), qu'il cherche
les "OUI" ou les "NON" et qu'il les remplace soit par une case cochée, soit
décochée.

J'espère que ces informations éclaircissent mon problème...

Cordialement,
Thommen


Avatar
thommen ulgar
Merci Géo pour ta proposition mais il est matérielemt impossible
d'intervenir sur le document créé (manque de temps de l'utilisateur). Une
macro ou un code VB devrait faire ce que tu décris mais seulement lorsque le
document est entièrement créé.
Le document Word (un .doc basé sur un .dot), une fois lancé par Access
s'affiche et se complète au fur et à mesure aux endroits où se trouvent des
signets. Cette opération prend un certain temps (30-45 sec suivant le
document). Il faudrait donc que la recherche des mots et leur remplacement
se fasse qu'une fois le document "terminé" et que cette opération se fasse
automatiquement, sans intervention humaine.
A+
"@pollo"

.desirable.laposte.net> a écrit dans le message de
news:
Bonsoir et bonne fin de semaine à tous,
Moi à un moment donné je pensais qu'un bête rechercher/remplacer de Oui
par la case à coché avec le V et un autre avec le Non par la

cose à coché avec X pourrait faire l'affaire.
Mais j'ai peut être rien compris.
Espérant cependant avoir été utile ?
Merci d'avoir lu jusque là.




Avatar
JièL Goubert
Bonjoir(c) thommen ulgar

Le 21/02/2005 02:48 vous avez écrit ceci :
Merci Géo pour ta proposition mais il est matérielemt impossible
d'intervenir sur le document créé (manque de temps de l'utilisateur).


Même pas pour lancer une macro manuellement ???

macro ou un code VB devrait faire ce que tu décris mais seulement lorsque le
document est entièrement créé.


Pas obligé qu'elle soit dans le doc final (du moins il me semble)

Le document Word (un .doc basé sur un .dot), une fois lancé par Access
s'affiche et se complète au fur et à mesure aux endroits où se trouvent des
signets. Cette opération prend un certain temps (30-45 sec suivant le
document). Il faudrait donc que la recherche des mots et leur remplacement
se fasse qu'une fois le document "terminé" et que cette opération se fasse
automatiquement, sans intervention humaine.


facile, il suffit d'une formule magique... moi je ne vois plus que ça ;-))))))

--
JièL Sans la baguette magique

Avatar
thommen ulgar
Bonjour JièL,


il est matérielemt impossible
d'intervenir sur le document créé (manque de temps de l'utilisateur).


Même pas pour lancer une macro manuellement ???
___________

Non, il n'est vraiment pas possible de le faire manuellement. La mise en
page du document est tellement précise que si on oublie d'effectuer la
macro, les tabulations prévues pour les cases à cocher se rempliraient par
OUI ou par NON, ce qui décalerait tout le contenu du document -> illisible.
Et comme il y a plusieurs centaines de documents à imprimer par jour, le
faire manuellement est plus que délicat (un oubli et c'est la cata)
____________

Pas obligé qu'elle soit dans le doc final (du moins il me semble)
____________

Ce code ou cette macro devrait, d'après moi, se trouver dans le template
(.dot) pour pouvoir se retrouver dans chaque .doc créé sur base de ce
template.
____________

facile, il suffit d'une formule magique... moi je ne vois plus que ça
;-))))))

____________
:) ça serait super, une macro à commande vocale qui répond à "Abracadabra"
:)

Plus sérieusement, je suis sûr que c'est réalisable, en soi, c'est un
"chercher et remplacer par" qui agit après un certain temps (ou du moins
quand ce code détecte que le document n'est plus en "activité", qd il est
complété)

A+


Avatar
Geo
Bonjour thommen ulgar


:) ça serait super, une macro à commande vocale qui répond à
"Abracadabra" :)


Oui, mais faut que ce soit l'appli Acces qui le prononce :-)

--

A+

Avatar
Geo
Bonjour thommen ulgar


Dans le .doc, Access crée un truc de ce genre-ci. Les signets se
trouvent en réalité juste devant le "OUI" ou "NON".
Laurier: OUI
Erable: NON
Cerisier: OUI
Faune: OUI


Si tout ton texte est comme ça, la technique de remplacement est
relativement facile, on remplacerait
espace + "oui" + fin de paragrpahe par
espace case cochée + fin de paragraphe,
aucun remplacement intempestif

Les .doc créés font plusieurs pages, rechercher les "OUI" ou "NON" et
utiliser la fonction "remplacer par" n'est pas envisageable car ces
documents doivent être immédiatement imprimés, sans manipulations.


Mais une macro sait faire tout ce qu'on sait faire à la main.

L'idéal serait donc qu'une macro ou un code vb agisse automatiquement
(sans cliquer sur quoi que ce soit) sur le .doc une fois que celui-ci
est completement créé. Ce code devrait donc fonctionner après un
certain laps de temps (soit qd il sait que le document ne se complète
plus), qu'il cherche les "OUI" ou les "NON" et qu'il les remplace
soit par une case cochée, soit décochée.


Donc voilà bien ce qui reste à régler.
Comment vous savez qu'Access a fini ?

A défaut on peut déclencher la macro lors de l'impression ?
Ca, on peut faire.

On progresse, on progresse.

--

A+

1 2