Ajouter du text dans Nouveau doc Word a partir de VB

cs_Hobby Messages postés 116 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 17 septembre 2008 - 7 nov. 2002 à 02:48
rachidos001 Messages postés 44 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 23 mars 2006 - 24 mai 2005 à 11:59
Bonjour,

J'ai des probleme avec les tabeaux dans word avec le code suivant:

    Dim wrdApp As New Word.Application
    Dim wrdDoc As New Word.Document
    Set wrdDoc = wrdApp.Documents.Add
    wrdDoc.Content.LanguageID = wdBelgianFrench
    wrdDoc.Content.NoProofing = False
    ' Tableau
    wrdDoc.Tables.Add Range:=Selection.Range, numrows:=1, NumColumns:=4
    wrdDoc.Tables(1).Cell(Row:=1, Column:=1).Range.InsertBefore Text:="1"
    wrdDoc.Tables(1).Cell(Row:=1, Column:=2).Range.InsertBefore Text:="2"
    wrdDoc.Tables(1).Cell(Row:=1, Column:=3).Range.InsertBefore Text:="3"
    wrdDoc.Tables(1).Cell(Row:=1, Column:=4).Range.InsertBefore Text:="4"
    wrdDoc.Tables(1).Borders.Enable = True
    wrdDoc.Content.Text = "suite"
    wrdDoc.Tables.Add Range:=Selection.Range, numrows:=1, NumColumns:=1
    wrdDoc.Tables(1).Borders.Enable = True
    ' Sauvegarde Word
    wrdDoc.SaveAs FileName:="d:\temp.doc"
    wrdDoc.Close
    wrdApp.Quit
    Set wrdDoc = Nothing
    Set wrdApp = Nothing

Le premier tableau disparait, je fait des bétises ?

Merci
Olivier

6 réponses

BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
7 nov. 2002 à 10:40
j'ai pas testé ton code, mais tu fais :
wrdDoc.Tables.Add Range:=Selection.Range, numrows:=1, NumColumns:=1

alors que Selection correspond a ton 1er tableau
il te faut faire un truc du style : (je connais pas la syntaxe exacte)

Wrd.words.last.select
selection.start= selection.start +selection.length

avant de créer le 2eme tableau

En esperant que ca puisse t'aider....
0
cs_Hobby Messages postés 116 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 17 septembre 2008
7 nov. 2002 à 11:49
Merci pour ta réponse.

J'avaoue ne rien comprendre. J'au trouvé ici le code:
wrdDoc.Tables.Add Range:=Selection.Range, numrows:=1, NumColumns:=4

Mais biensûr je ne sais pas si c'est la bonne maniere. Dans le msdn il n'y a pas d'explication sur la creation d'un tableau.

Tu as peut-être a tu as un autre méthode.
Mon but est de faire un document word complet avec des tableaux, dons le contenu de ceux-ci, son remplit par des données qui vienent de VB.

Merci, De votre aide, si vous avez des exemples concret, je suis preneur.
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
7 nov. 2002 à 12:02
c'est la bonne maniere, enfin je crois
mais le probleme viens de selection.range; je m'explique

Dans word qd tu selection du texte et que tu tapes du texte, il replace la selection par le nouveau texte.
C'est exactement la meme chose avec tes tableau (enfin il me semble).
ton 1er tableau est selectionné et tu crée 1 2eme tableau => il remplace ton 1er tableau par le 2eme.

il faut donc que tu deplaces le curseur a la fin de ton document word avant la creation du 2eme tableau.
0
cs_Hobby Messages postés 116 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 17 septembre 2008
7 nov. 2002 à 12:25
Tu as raison, j'ai ajouter:


Selection.MoveDown Unit:=wdLine, Count:=2
Selection.TypeParagraph
Selection.TypeText Text:="Suite"
wrdDoc.Tables.Add Range:=Selection.Range, numrows:=1, NumColumns:=1
wrdDoc.Tables(2).Borders.Enable = True


Comme cela fonctionne. Je commence a comprendre le principe

Merci
Olivier
0

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

Posez votre question
rachidos001 Messages postés 44 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 23 mars 2006
24 mai 2005 à 11:57
bonjour
je crois quej'ai le meme problem
c'est que je sais pas comment proceder,mon prob c'est que j'ai deja un imprimée administratif e t je dois f un code qui m'aide a remplir ce formulaire a partir d'une interface vb6 sans avoir un decalage sur l'imprimée chaque information ds une place precise
j'ai pensé a utiliser word pour resoudre le prob mais j'arrive pas a trouver un code qui peux m'aider
ce que je veux c'est taper les info sur l'interface ,les enregistrer ds la base(facile), les visualiser sur un doc word puis les imprimer sur le formulaire par une imprimente matricielle (l'imprimer et deja tracer et chaque information doit etre afficher ds ca place consacré)
je suis un debutant en informatique et en vb6 ,j'accepte volantier toutes informations ou conseils
merci
0
rachidos001 Messages postés 44 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 23 mars 2006
24 mai 2005 à 11:59
bonjour
je crois quej'ai le meme problem
c'est que je sais pas comment proceder,mon prob c'est que j'ai deja un imprimée administratif e t je dois f un code qui m'aide a remplir ce formulaire a partir d'une interface vb6 sans avoir un decalage sur l'imprimée chaque information ds une place precise
j'ai pensé a utiliser word pour resoudre le prob mais j'arrive pas a trouver un code qui peux m'aider
ce que je veux c'est taper les info sur l'interface ,les enregistrer ds la base(facile), les visualiser sur un doc word puis les imprimer sur le formulaire par une imprimente matricielle (l'imprimer et deja tracer et chaque information doit etre afficher ds ca place consacré)
je suis un debutant en informatique et en vb6 ,j'accepte volantier toutes informations ou conseils
merci
0
Rejoignez-nous