Tableau vba word erreur

Résolu
kenru64 Messages postés 29 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 9 juin 2011 - 5 mai 2010 à 10:39
kenru64 Messages postés 29 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 9 juin 2011 - 5 mai 2010 à 14:36
bonjour,

j'aimerai créer un tableau dans un document Word voici mon code avec toutes les lignes que j'ai testé en commentaire :

Dim nomfich As String
Dim appwd As Word.Application
Dim WordDoc As Word.Document
Dim ta
Set appwd = CreateObject("Word.Application")
Set WordDoc = appwd.Documents.Add

appwd.Visible = True
appwd.Activate

'WordDoc.ActiveDocument.Tables(1).Add

'appwd.ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:=4

'ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=5, NumColumns:=10, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitContent

With WordDoc
.PageSetup.Orientation = wdOrientLandscape
.SaveAs FileName:=nomfich
End With

Mais j'obtiens pleins d'erreur différentes me parlant de bloc with non définie, de variable objet non définie, ou encore propriété ou méthode non gérée par l'objet.
Je ne sais pas trop quoi en penser une piste de réflexion serait la bien venue.
merci beaucoup :)

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 mai 2010 à 11:27
Salut
[u]1ère syntaxe :
/uSi WordDoc est ton objet Document, WordDoc.ActiveDocument n'a pas de sens.
Seule l'application peut avoir un ActiveDocument, pas un document.

3ème syntaxe :
ActiveDocument.Tables.Add Range:=Selection.Range ...
ActiveDocument n'a pas de sens sous VB6.
Selection.Range non plus
Pas de sens parce que cela ne s'applique qu'à des objets Word

A tester :
    Dim maSelection As Word.Selection
    Dim maTable As Word.Table
    Set maSelection = WordDoc.Application.Selection
    With maSelection
        ' Déplacement d'un mot vers la droite
        .MoveRight Unit:=wdWord, Count:=1
        ' Sélection des huit mots suivants
        .MoveRight Unit:=wdWord, Count:=8, Extend:=wdExtend
    End With
    Set maTable = WordDoc.Tables.Add Range:=maSelection.Range ...
    maTable.Borders.InsideColor = wdColorBlue

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
kenru64 Messages postés 29 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 9 juin 2011
5 mai 2010 à 14:36
ok ca marche mieux comme ca ^^ merci beaucoup,
donc si je résume pour être sur d'avoir bien compris :
WordDoc étais activedocument ca ne pouvais donc pas fonctionner.
activedocument n'existe pas sous VB6.

J'espere mieu comprendre le VBA avec le temps en tout cas merci beaucoup pour vos réponses
0
Rejoignez-nous