OVH Cloud OVH Cloud

Macro vs ouverture fichier Word

7 réponses
Avatar
Butch
Bonjour à tous et....Joyeuses Fêtes!

Configuration: Access 2000 - Word 2000 -Windows 98 SE.

J'ai, dans ma base de données, 4 macros qui servent à ouvrir chacune un
document Word pour produire, par exemple, des enveloppes pour le
publipostage (selon différents choix). Les données (champs) sont extraites
par l'entremise de requêtes (1 pour chaque type de publipostage).

Il arrive que je doive installer cette BD sur des ordinateurs différents sur
lesquels le "chemin" indiquant l'emplacement du fichier Winword.exe est
évidemment différent de l'un à l'autre.

Ex: La macro contient l'action: ExécuterApplication
La commande dans l'argument est (par exemple):
C:\Program Files\Microsoft Office\Office\Winword.exe C:\Mes
documents\DocWordEnve1.doc

Il peut donc arriver que ce "chemin" (dans la commande de l'argument)
diffère soit en ce qui concerne l'emplacement de Winword.exe et/ou
l'emplacement du fichier Word (enveloppe) lui-même.

Les questions: Existe-t-il un moyen de créer ce "chemin" afin qu'il
s'ajuste automatiquement à n'importe laquelle configuration? Un "chemin
relatif" peut-il être créé et comment? Une macro est-elle vraiment le bon
moyen pour effectuer cette tâche?

Merci de m'aider ou de m'indiquer une source de référence.

Butch

7 réponses

Avatar
Raymond [mvp]
Bonjour.

pour le chemin du document, à toi de voir si le chemin du .doc diffère et de
savoir ou le récupérer. si tu le fais choisir par l'utilisateur tu peux
utiliser l'api openfile:
http://access.seneque.free.fr/ouverture_document.htm
pour l'exécutif, soit tu passes par automation soit par l'api d'exécution
d'un document selon son extension; dans le premier cas tu as un exemple sur
: http://access.seneque.free.fr/ouvrir_document.htm, dans le second cas tu
utilises l'api ShellExec, exemple sur:
http://access.seneque.free.fr/executer_selon_ext.htm

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Butch" a écrit dans le message de
news:0AmGb.57766$%
Bonjour à tous et....Joyeuses Fêtes!

Configuration: Access 2000 - Word 2000 -Windows 98 SE.

J'ai, dans ma base de données, 4 macros qui servent à ouvrir chacune un
document Word pour produire, par exemple, des enveloppes pour le
publipostage (selon différents choix). Les données (champs) sont
extraites

par l'entremise de requêtes (1 pour chaque type de publipostage).

Il arrive que je doive installer cette BD sur des ordinateurs différents
sur

lesquels le "chemin" indiquant l'emplacement du fichier Winword.exe est
évidemment différent de l'un à l'autre.

Ex: La macro contient l'action: ExécuterApplication
La commande dans l'argument est (par exemple):
C:Program FilesMicrosoft OfficeOfficeWinword.exe C:Mes
documentsDocWordEnve1.doc

Il peut donc arriver que ce "chemin" (dans la commande de l'argument)
diffère soit en ce qui concerne l'emplacement de Winword.exe et/ou
l'emplacement du fichier Word (enveloppe) lui-même.

Les questions: Existe-t-il un moyen de créer ce "chemin" afin qu'il
s'ajuste automatiquement à n'importe laquelle configuration? Un "chemin
relatif" peut-il être créé et comment? Une macro est-elle vraiment le bon
moyen pour effectuer cette tâche?

Merci de m'aider ou de m'indiquer une source de référence.

Butch






Avatar
J-Pierre
Salut,

Tu trouves le répertoire d'installation dans les clés de registre suivantes:

HKCurrentUser ou HKLocalMachine/Software/Microsoft/Office/Version/Word/InstallRoot/Path

Je crois que ce sera difficile d'y aller avec une macro, mais je crois aussi qu'Anor a publié le code pour y accéder, et le code
d'Anor, des fois, ça marche:
http://memoaccess.free.fr

Pour la version, utilise la propriété Application.Version

J-Pierre


"Butch" a écrit dans le message de news: 0AmGb.57766$%
Bonjour à tous et....Joyeuses Fêtes!

Configuration: Access 2000 - Word 2000 -Windows 98 SE.

J'ai, dans ma base de données, 4 macros qui servent à ouvrir chacune un
document Word pour produire, par exemple, des enveloppes pour le
publipostage (selon différents choix). Les données (champs) sont extraites
par l'entremise de requêtes (1 pour chaque type de publipostage).

Il arrive que je doive installer cette BD sur des ordinateurs différents sur
lesquels le "chemin" indiquant l'emplacement du fichier Winword.exe est
évidemment différent de l'un à l'autre.

Ex: La macro contient l'action: ExécuterApplication
La commande dans l'argument est (par exemple):
C:Program FilesMicrosoft OfficeOfficeWinword.exe C:Mes
documentsDocWordEnve1.doc

Il peut donc arriver que ce "chemin" (dans la commande de l'argument)
diffère soit en ce qui concerne l'emplacement de Winword.exe et/ou
l'emplacement du fichier Word (enveloppe) lui-même.

Les questions: Existe-t-il un moyen de créer ce "chemin" afin qu'il
s'ajuste automatiquement à n'importe laquelle configuration? Un "chemin
relatif" peut-il être créé et comment? Une macro est-elle vraiment le bon
moyen pour effectuer cette tâche?

Merci de m'aider ou de m'indiquer une source de référence.

Butch






Avatar
Butch
Bonjour,

Merci Raymond et Jean-Pierre,

J'ai consulté les sites de référence proposés par Raymond. Je ne suis pas
très à l'aise en VBA! Toutefois, j'ai consulté le code suivant proposé sur
le site "access.seneque" que j'ai recopié ci-dessous. Cependant, je
constate que la ligne ".Documents.Open (....)" affiche, entre les
parenthèses, une "chemin précis" pour le document (à moins évidemment que je
ne comprenne pas bien le code!!).
(Suite du message après le code....)

Sub OpenDoc()
On Error Resume Next
Dim W_App as Object
Set W_App = CreateObject ("Word.Application")
With W_App
.Visible = True
.Documents.Open ("c:doc1.doc")
.ActiveDocument.SaveAs "c:Doc2.Doc"
.Quit
End With
Set W_App = Nothing
End Sub

Dans mon cas, ce "chemin" peut varier d'un PC à l'autre en plus de celui de
l'exécutif de Word.
Je ne sais trop non plus, où et comment insérer ce code? Serait-il relié à
la propriété "SurClic" d'un bouton de commande? Si oui, je crois que cela
je peux faire!

Encore une fois, merci pour votre aide et mille excuses pour mon ignorance
en VBA...je travaille là-dessus régulièrement afin d'utiliser au mieux un
programme comme Access.

Butch
Avatar
Raymond [mvp]
Bonsoir.

tu peux remplacer "c:doc1.doc" par un nom de variable ou un nom de champ ou
un nom de contrôle de formulaire par exemple. pour sauvegarder également.
en général cette procédure est sous-jacente à un click sur un bouton, mais
tu peux la mettre où tu veux.
J'ai oublié de te dire, au cas où tu aurais plusieurs niveaux de word ( Word
97, 2000, 2002 .... sur le même pc) c'est le dernier word exécuté qui sera
lancé.
faut pas t'excuser, ça viendra.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Butch" a écrit dans le message de
news:yW_Gb.58505$
Bonjour,

Merci Raymond et Jean-Pierre,

J'ai consulté les sites de référence proposés par Raymond. Je ne suis pas
très à l'aise en VBA! Toutefois, j'ai consulté le code suivant proposé
sur

le site "access.seneque" que j'ai recopié ci-dessous. Cependant, je
constate que la ligne ".Documents.Open (....)" affiche, entre les
parenthèses, une "chemin précis" pour le document (à moins évidemment que
je

ne comprenne pas bien le code!!).
(Suite du message après le code....)

Sub OpenDoc()
On Error Resume Next
Dim W_App as Object
Set W_App = CreateObject ("Word.Application")
With W_App
.Visible = True
.Documents.Open ("c:doc1.doc")
.ActiveDocument.SaveAs "c:Doc2.Doc"
.Quit
End With
Set W_App = Nothing
End Sub

Dans mon cas, ce "chemin" peut varier d'un PC à l'autre en plus de celui
de

l'exécutif de Word.
Je ne sais trop non plus, où et comment insérer ce code? Serait-il relié
à

la propriété "SurClic" d'un bouton de commande? Si oui, je crois que cela
je peux faire!

Encore une fois, merci pour votre aide et mille excuses pour mon ignorance
en VBA...je travaille là-dessus régulièrement afin d'utiliser au mieux un
programme comme Access.

Butch




Avatar
Butch
Bonjour Raymond,

Merci pour tes précisions. Là je comprend un peu mieux comment utiliser le
code (exemple) trouvé sur le site "access.seneque".

J'aurais toutefois besoin d'un plus d'informations concernant l'emploi de
"variables". Est-ce que c'est quelque chose comme %office% ...etc. Si oui,
quoi écrire entre les "%"? Est-ce que cela est aussi valable autant pour
l'emplacement de Winword.exe et du document Word lui-même.
Exemple (boîteux...mais je fais de mon mieux!): %Program Files% ...
%LeDocWordLuiMeme%.

Merci encore.

Butch
Avatar
Raymond [mvp]
Bonjour.

une variable est un 'objet' que tu déclares dans ton code et dans lequel tu
peux placer des valeurs, l'utiliser pour fournir une valeur à d'autres
variables par exemple. une variable peut être privée (private) et ne sera
accessible que dans la procédure où elle est déclarée ou publique (public)
et sera accessible à partir d'autre procédures. tout ceci étant simplifié
bien sûr. on peut dire aussi que c'est un emplacement de stockage nommé
contenant des données pouvant être modifiées au cours de l'exécution du
programme. Chaque variable possède un nom qui l'identifie de manière
univoque au sein de sa portée.
Regarde l'aide en ligne, ou un bon bouquin, ou visite les sites de
formations nommés dans les conseils d'utilisation :
http://users.skynet.be/mpfa/sites/
tu oublies vite le %% utilisé en dos.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Butch" a écrit dans le message de
news:pw2Hb.66254$
Bonjour Raymond,

Merci pour tes précisions. Là je comprend un peu mieux comment utiliser
le

code (exemple) trouvé sur le site "access.seneque".

J'aurais toutefois besoin d'un plus d'informations concernant l'emploi de
"variables". Est-ce que c'est quelque chose comme %office% ...etc. Si
oui,

quoi écrire entre les "%"? Est-ce que cela est aussi valable autant pour
l'emplacement de Winword.exe et du document Word lui-même.
Exemple (boîteux...mais je fais de mon mieux!): %Program Files% ...
%LeDocWordLuiMeme%.

Merci encore.

Butch




Avatar
Butch
Bonjour Raymond,

Merci encore pour les informations.
Je continue ma formation...en vba...je regarde des exemples sur le NET.

Joyeuses Fêtes.

Butch