Pb avec automation Word

Résolu
kannibal Messages postés 17 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 6 février 2007 - 17 sept. 2006 à 17:06
kannibal Messages postés 17 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 6 février 2007 - 21 sept. 2006 à 22:52
Bonjour à tous !

J'ai un problème avec de l'automation Word.
Mon problème est que je veux insérer dans un document un tableau, puis insérer dans les cellules des valeurs.

Voici mon code actuel :

MsWord := CreateOleObject('Word.Application');
bFile := GetAppPath+'Temp\fichier.doc';
MsDocs := MsWord.Documents;
MsDoc := MsDocs.Open(bFile);
vBook := vBooks.Item('signet1');
vBook.Select;
msDoc.Tables.Add(vBook.Range,9,4); //Créer correctement le tableau
msDoc.Tables.Item(1).Cell(1,1).InsertAfter('Text1');  //éthode inexistante

C'est la dernière ligne du code qui pose problème.
J'ai bien trouvé des docs sur el net mais ne fonctionnant pas.
J'ai également regardé {Delphi}\OCX\Servers\Word2000.pas

Et toujours pas de réponse à mon problème!

Merci à tous ceux qui ont une idée.

Fred

3 réponses

kannibal Messages postés 17 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 6 février 2007
21 sept. 2006 à 22:52
Ton code ca serait pas du VB?

J'ai trouvé la réponse sur un forum chinois, je colle pour référence!

procedure TForm5.Button5Click(Sender: TObject);
var Msdoc,Selection:variant;
    Frng:variant;
    i:integer;
begin
  V:=CreateOleObject('Word.application');
  V.application.visible:=false;
  Msdoc:=V.Documents.Add('c:\temp\Doc1.doc',);
  Selection:=V.Application.Selection;
  for i:=1 to 5 do
  begin
     Selection.TypeText('test');
     Selection.TypeParagraph;
  end;
  Selection.InsertBreak(0);
  Selection.TypeText('test');
  Selection.TypeParagraph;
  Selection.TypeParagraph;
  myTable := Msdoc.Tables.Add(Selection.Range, 7, 10); //7x10ªºªí®æ
  myTable.Columns.Width:=20;
  myTable.Rows.Item(1).Height:=50;
  myTable.Cell(3,2).Range.Text:='­û¤u½s¸¹';
  myTable.Cell(5,6).Range.Text:='­û¤uÃÒ©ú';
  Selection.InsertBreak(0);
  Selection.TypeParagraph;
  Selection.TypeParagraph;
end;
3
yopai_v Messages postés 47 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 21 avril 2010
18 sept. 2006 à 23:02
salut,

Première chose à faire dans un cas comme ça :

set table = msDoc.Tables.Item(1)

set cell = table.Cell(1,1)

cell.InsertAfter('Text1')


ca te permet déjà de savoir quelle est la méthode qu'il ne trouve pas

J'aurais bien grattouillé plus pour t'aider, mais je n'ai que OpenOffice sur ma machine


En espérant avoir été utile...
0
kannibal Messages postés 17 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 6 février 2007
19 sept. 2006 à 10:34
Merci Yopai !

Très bonne idée.

J'essaie ca. Dès que j'ai des pistse, je les mettrai ici.

A+
0
Rejoignez-nous