Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

word + vbs

17 réponses
Avatar
Youri Ligotmi
Bonjour

J'utilise le vbscript pour créer des utilisateurs sur un domaine windows.
Je voudrais pouvoir faire une fusion de document, c'est à dire depuis
mon script appeler word en lui passant des paramètres qui seront placés
à certaines positions d'un document maître.
Je pense qu'il va falloir que j'écrive un script vba qui traitera les
données passées par mon vbs.
Je n'y connais rien en vba, qui pourrait m'aider ou me donner quelques
adresses qui me dépanneraient?
Merci

10 réponses

1 2
Avatar
Geo

Bonjour

J'utilise le vbscript pour créer des utilisateurs sur un domaine windows.
Je voudrais pouvoir faire une fusion de document, c'est à dire depuis mon script
appeler word en lui passant des paramètres qui seront placés à certaines positions d'un
document maître.
Je pense qu'il va falloir que j'écrive un script vba qui traitera les données passées
par mon vbs.
Je n'y connais rien en vba, qui pourrait m'aider ou me donner quelques adresses qui me
dépanneraient?
Merci


Je ne vois pas comment passer des paramètres à Word si ce n'est à
travers un fichier.
Une idée de solution :
Créer avec le script un fichier texte avec le contenu des paramètres,
un par ligne, par exemple.
Dans Word faire un fichier, pas forcément un formulaire, mais avec des
signets aux emplacements d'insertion des données. Dans ce fichier une
macro autoOpen qui lit le fichier des paramètres et recopie les données
au bon endroit.
Et dans le script lancer l'ouverture de ce fichier.

De l'aide vous en trouverez ici, bien sûr, mais aussi des bases sur la
faq,
http://faqword.free.fr

en particulier
Le didacticiel vba :
http://faqword.free.fr/articles.php?lng=fr&pg48
et aussi :
Comment mettre à jour les signets par macro ? :
http://faqword.free.fr/articles.php?lng=fr&pga

--
A+

Avatar
Anacoluthe
Bonjour !

'Youri Ligotmi' nous a écrit ...
J'utilise le vbscript
Je n'y connais rien en vba


??? mais c'est quasiment la même chose !!!
C'est juste une question d'objets


Voici un script VBS qui lance Word, crée un document et écrit qqch dedans :
-----------------------------------------------
Set oWord = CreateObject("Word.Application")
oWord.Caption = "Essai d'automation Word"
oWord.Visible = True

Set oDoc = oWord.Documents.Add()

With oWord.Selection
.Font.Name = "Arial"
.Font.Size = "18"
.TypeText "Bonjour depuis VBScript ! "
.TypeParagraph()
End With
' ...
-----------------------------------------------

Le script peut se poursuivre avec une fusion-publipostage, l'enregistrement
ou l'impression du document puis la fermeture de Word...

Anacoluthe
« La connaissance des mots conduit à la connaissance des choses. »
- PLATON

Avatar
Youri Ligotmi
Bonjour !

'Youri Ligotmi' nous a écrit ...
J'utilise le vbscript
Je n'y connais rien en vba


??? mais c'est quasiment la même chose !!!
C'est juste une question d'objets


Voici un script VBS qui lance Word, crée un document et écrit qqch dedans :
-----------------------------------------------
Set oWord = CreateObject("Word.Application")
oWord.Caption = "Essai d'automation Word"
oWord.Visible = True

Set oDoc = oWord.Documents.Add()

With oWord.Selection
.Font.Name = "Arial"
.Font.Size = "18"
.TypeText "Bonjour depuis VBScript ! "
.TypeParagraph()
End With
' ...
-----------------------------------------------

Le script peut se poursuivre avec une fusion-publipostage, l'enregistrement
ou l'impression du document puis la fermeture de Word...


Merci de ces renseignements. Une question?
Est-il techniquement possible via un script d'ouvrir un document word
(document maitre), d'y effectuer quelques chercher-remplacer dont les
paramètres seront passés par le script principal, de lancer l'impression
sur l'imprimante par défaut et de fermer le document sans l'enregistrer?
Si oui je vais chercher comment faire grâce aux liens donnés par geo.

Merci encore


Avatar
Circé
Bonjour,

Le 24/09/2007, Youri Ligotmi

Do you look really kink ?
Très drôle ton pseudo ! ;)) J'aime bien !

Circé
http://faqword.free.fr
Avatar
Anacoluthe
Bonjour !

'Youri Ligotmi' nous a écrit ...
Est-il techniquement possible via un script d'ouvrir un document word
(document maitre), d'y effectuer quelques chercher-remplacer dont les
paramètres seront passés par le script principal, de lancer l'impression
sur l'imprimante par défaut et de fermer le document sans l'enregistrer?
Si oui je vais chercher comment faire grâce aux liens donnés par geo.


Absolument !
La méthode est même très simple si vous n'êtes pas familiarisé avec le
modèle objet Word (= les objets, les propriétés, les méthodes) :
dans Word vous enregistrez une macro ('ENR' sur la barre d'état) qui
fait tout ça puis vous copiez le code obtenu (Alt+F11) dans votre script VBS
en y ajoutant partout les objets (Application, Document, etc) qui sont
implicites dans le VBA Word.

Anacoluthe
« La connaissance des mots conduit à la connaissance des choses. »
- PLATON

Avatar
Youri Ligotmi
Bonjour,

Le 24/09/2007, Youri Ligotmi

Do you look really kink ?
Très drôle ton pseudo ! ;)) J'aime bien !

Circé
http://faqword.free.fr


Et ma femme c'est Agathe Zeblouse!


Avatar
Youri Ligotmi
Bonjour !

'Youri Ligotmi' nous a écrit ...
Est-il techniquement possible via un script d'ouvrir un document word
(document maitre), d'y effectuer quelques chercher-remplacer dont les
paramètres seront passés par le script principal, de lancer
l'impression sur l'imprimante par défaut et de fermer le document sans
l'enregistrer?
Si oui je vais chercher comment faire grâce aux liens donnés par geo.


Absolument !
La méthode est même très simple si vous n'êtes pas familiarisé avec le
modèle objet Word (= les objets, les propriétés, les méthodes) :
dans Word vous enregistrez une macro ('ENR' sur la barre d'état) qui
fait tout ça puis vous copiez le code obtenu (Alt+F11) dans votre script
VBS
en y ajoutant partout les objets (Application, Document, etc) qui sont
implicites dans le VBA Word.



J'ai donc fait une tentative, j'ai un problème avec le
chercher/remplacer, surtout avec le remplacer. J'utilise la commande
suivante :
objDoc.Content.Find.Execute FindText="$nom", ReplaceWith=nom,
Replace=wdReplaceAll

Où $nom est la chaîne que je veux remplacer par le contenu de la
variable nom.

j'ai l'erreur suivante : "800A01C2, Nombre d'arguments ou affectation de
propriété incorrects : 'Replace'"

J'ai beau chercher ce que ça veut dire je ne trouve pas.

Quelqu'un aurait une idée?

Merci d'avance

Phil


Avatar
Geo

J'ai donc fait une tentative, j'ai un problème avec le chercher/remplacer, surtout avec
le remplacer. J'utilise la commande suivante :
objDoc.Content.Find.Execute FindText="$nom", ReplaceWith=nom, Replace=wdReplaceAll


Pour des paramètres nommés, les valeurs sont affectées par : Donc plutôt

objDoc.Content.Find.Execute FindText:="$nom", ReplaceWith:=nom,
Replace:=wdReplaceAll

--
A+

Avatar
Youri Ligotmi

J'ai donc fait une tentative, j'ai un problème avec le
chercher/remplacer, surtout avec le remplacer. J'utilise la commande
suivante :
objDoc.Content.Find.Execute FindText="$nom", ReplaceWith=nom,
Replace=wdReplaceAll


Pour des paramètres nommés, les valeurs sont affectées par : > Donc plutôt

objDoc.Content.Find.Execute FindText:="$nom", ReplaceWith:=nom,
Replace:=wdReplaceAll

Merci mais si je rajoute les ":" j'obtiens une erreur :

800A0400 Instruction attendue

Je précise qu'il s'agit d'un vbs et pas d'un vba

Merci encore pour votre aide


Avatar
Anacoluthe
Bonjour !

'Youri Ligotmi' nous a écrit ...
Je précise qu'il s'agit d'un vbs et pas d'un vba


Utilisez la forme exacte de la méthode VBA avec ses parenthèses
objet.méthode(arg1,arg2,arg3)
au besoin en omettant les arguments facultatifs objet.méthode(arg1,,arg3)

N'utilisez pas les constantes non référencées dans VBS !!!
exemple argument Replace:=wdReplaceAll
Comment VBS peut-il compiler wdReplaceAll ????
wdReplaceAll est égal à 2 (facile à retrouver dans vba)
donc utilisez l'argument 2

Le moteur c'est l'application Word. VBS ne fait rien que piloter.
Vous devez écrire et tester votre programme dans Word.
Ensuite la transposition dans VBS n'est guère compliquée. Si ça vous gonfle
de faire la réécriture le plus simple est de lancer la macro vba
toute faite dans Word depuis votre script (le script ouvre un document
qui contient la macro puis fait exécuter cette macro)

Anacoluthe
« La connaissance des mots conduit à la connaissance des choses. »
- PLATON

1 2