Pb avec automation Word

Résolu
Signaler
Messages postés
17
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
6 février 2007
-
Messages postés
17
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
6 février 2007
-
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

Messages postés
17
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
6 février 2007

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;
Messages postés
47
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
21 avril 2010

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...
Messages postés
17
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
6 février 2007

Merci Yopai !

Très bonne idée.

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

A+