Lancer du vb de delphi dans word

Résolu
dederfred Messages postés 19 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 23 novembre 2006 - 23 nov. 2006 à 07:51
cs_pers Messages postés 38 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 9 décembre 2009 - 23 nov. 2006 à 14:21
Est-il possible de lancer une commande visualBasic dynamique pour Word dans Delphi. (Avec des argument venant de delphi.
Je dois lancer cela :
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0


J’ai essayer de passer par la commande sous Delphi monfichierword.printOut();


Mais j'ai une erreur me disant :

Ma ligne est celle la :
monFichier.PrintOut(Background,EmptyParam,range,EmptyParam,EmptyParam,EmptyParam,EmptyParam,copie,EmptyParam,PageType,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam


J’avoues que je ne vois pas pourquoi cela ne fonctionne pas .
ma variable copie provient d'une autre form et quand je fais un showmessage(copie); avant le printout il m'affiche bien 1 .


Je ne comprends pas.


Merci d’avance.

(j'ai posté sur un autre forum aussi mais personne à de reponse )

6 réponses

cs_pers Messages postés 38 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 9 décembre 2009
23 nov. 2006 à 14:21
salut
Moi personnellement je préfere ainsi car je dois pas me farcir les "emptyparam" et pas respecter un certain ordre
(enfin pas encore rencontrer des pb à ce niveau)

ce serait sans aucun doute plus facile de voir un peu plus de ton code...

Range n'est pas l'imprimante mais le type de sélection à imprimer ici = valeur numérique

Pour l'ensemble des param's tu poses la question en VBA - l'aide n'est pas trop ma faite

bonne après-midi
3
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
23 nov. 2006 à 09:50
Salut,

Tu passes trop de paramètres (il n'en faut que 14) ce qui fait que tu te décales.
Je pense qu'il faut écrire :

monFichier.PrintOut(EmptyParam,
                    EmptyParam,
                    EmptyParam,
                    copie,
                    EmptyParam,
                    PageType,
                    EmptyParam,
                    EmptyParam,
                    EmptyParam,
                    EmptyParam,
                    EmptyParam,
                    EmptyParam,
                    EmptyParam,
                    EmptyParam);

Bonne prog'

japee
0
dederfred Messages postés 19 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 23 novembre 2006
23 nov. 2006 à 10:29
Au debut je croyais comme toi mais quand je rentre seulemeent 14 argument il me met :
[Error] Interface_Termite.pas(1205): Not enough actual parameters
et quand je rentre cela

monFichier. et que je rentre le mot PrintOut j'ai une sorte d'info bule qui me met tous ses arguments .

je te fait un print :


 
0
cs_pers Messages postés 38 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 9 décembre 2009
23 nov. 2006 à 12:38
Salut

Je te propose ceci. Ca fonctionne chez moi mais c'est largement perfectible

procedure TForm1.Button1Click(Sender: TObject);
Var MsWord : Variant ;
begin

// comobj,wordxp,OleServer dans les uses
try
  MsWord := CreateOleObject ('Word.Application');
except
  on E: EOleSysError do MsWord := GetActiveOleObject('Word.Application');
end;

MsWord.Visible := True ;


MsWord := GetActiveOleObject('Word.Application');
MsWord.Documents.Open('d:\test\MonDoc.doc');


MsWord.ActiveDocument.printout(Background := True ,Range:=wdPrintRangeOfPages,Pages := '1-3' ) ;


end;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dederfred Messages postés 19 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 23 novembre 2006
23 nov. 2006 à 12:48
Merci beaucoup de ta solution je vais l'essayer mais si une solution autre existe je suis preneur car mon application est basé a l'origine sur le composant TWordApplication se serait embetant de devoir refaire le travaille d'une semaine.
0
dederfred Messages postés 19 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 23 novembre 2006
23 nov. 2006 à 13:02
Petite question range est bien le nom de l'imprimante choisie ??
Si possible pouvez vous me donner la signification de chaque argument de la commande printout ?
merci beaucoup ou si vous trouvez un lien le fesant car je n'en trouve pas et j'ai peu etre fait une erreure .

Pour information , j'ai tester ce qui ma était donner au dessu s et j'ai la meme erreure ...

    MsWord.ActiveDocument.printout(Background := Background ,Range:=range,Copies :=copie ) ;
0
Rejoignez-nous