Créer plusieurs tableau dans doc word via VBS
Bonjour,
Je suis débutant en VBS et j'ai un grand besoin d'aide :lol:
Je m'explique,
Je tente actuellement de créer un .VBS qui à pour rôle de créer un document Word puis d'y insérer un certain nombre de tableaux les uns après les autres...
Problème, une fois le premier tableau créé, je n'arrive pas à sortir de celui-ci (baisser la position de mon curseur puis faire un saut de ligne) afin de créer un second tableau et ainsi de suite...
Du coup, le second tableau n'est pas créé car je suis mal positionné et j'ai une erreur "Impossible de supprimer la plage"...
Mon code :
(Sub création tableau)
Code:
1 2 3 4 5
| Sub TableauH(nbL, nbC, NumTab)
Set objRange = objDoc.Range()
objWord.Selection.Tables.Add objRange,nbL,nbC
Set oTbl = objDoc.Tables(NumTab)
end sub |
(Sub principal)
Code:
1 2 3 4 5 6 7
| Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
objWord.Selection.TypeText "blablabla"
objWord.Selection.TypeParagraph
call TableauH(2, 2, 1) 'création du premier tableau |
J'ai tenté avec les méthode suivantes :
Code:
1 2 3 4 5
| objWord.Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend
objWord.Selection.TypeParagraph
'---ou encore------'
objWord.Selection.Expand unit:=wdTable
objWord.Selection.Collapse direction:=wdCollapseEnd |
Mais j'ai toujours la même erreur : instruction attendue"
Si une âme charitable peut me donner un coup de main :ccool:
[RESOLU]Créer plusieurs tableau dans doc word via VBS
Bonjour,
Bon et bien c'est résolu. Pour les futurs intéréssés la solution était rééllement simple 8O
En fait les différences entre VBA et VBS sont plutôt importantes. Dans le cas de MoveDown, il sufisait de donner une valeur à tout les paramètres contrairement avec le VBA :
VBA :
Code:
.Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend
VBS :
Code:
.Selection.MoveDown 5, 1(Attention, le WdLine doit être à 5, je ne sais ce que représente cette valeur)
Donc dans mon cas :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Sub Tableau(nbL, nbC, NumTab)
objDoc.Tables.Add objWord.Selection.Range, nbL, nbC
Dim oTbl 'As Table
Set oTbl = objDoc.Tables(NumTab)
oSelection.MoveDown 5,nbL
oSelection.TypeParagraph 'Ne pas oublier ce retour chariot afin de ne pas coller le pointeur sous le tableau nouvellement créé. En cas d'oubli, le futur tableau fusionnera avec l'existant
end sub
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
objWord.Selection.TypeText "blablabla"
Call Tableau(2, 2, 1)
objWord.Selection.TypeText "blablabla2"
Call Tableau(2, 2, 2)
objWord.Selection.TypeText "blablabla3"
Call Tableau(2, 2, 3)
... |
En tt cas merci pour tout bbil !
Rectifications / petit supplément
Bonjour,
Rectification pour les prochains....
La méthode MoveDown n'est finalement pas une solution.
Cette méthode baisse le pointeur de N lignes mais prend en compte les sauts de lignes présentes dans chaque cellules. Ainsi, si votre tableau comporte de telles cellules, vous ne sortirez pas de celui-ci !
Solution : Utiliser EndKey afin de pointer sur la fin de fichier plutôt que MoveDown.
Attention le VBS n'est pas du VBA donc pour le EndKey c'est :
Code:
1 2
| Selection.EndKey (6) ' En VBS
Selection.EndKey (wdstory) ' En VBA |
Enjoy