IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Créer plusieurs tableau dans doc word via VBS


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Juillet 2012
    Messages : 7
    Par défaut Créer plusieurs tableau dans doc word via VBS
    Bonjour,

    Je suis débutant en VBS et j'ai un grand besoin d'aide

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Juillet 2012
    Messages : 7
    Par défaut
    Bien le bonjour la communauté !

    Bon et bien je ne trouve toujours pas la méthode appropriée mais j’ai une piste.

    Après la création d'un objet, le curseur semble se placer automatiquement en début de fichier. Je m'en suis rendu compte en insérant du texte avant l'appel de ma procédure pour création de tableau et figurez-vous que le texte est écrasé par le tableau...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub TableauH(nbL, nbC, NumTab)
     
    	Set objRange = objDoc.Range()
    	objWord.Selection.Tables.Add objRange,nbL,nbC
    	Set oTbl = objDoc.Tables(NumTab)
     
                   oTbl.cell(2,1).range.select    'selectionne bien la cellule
                   Selection.MoveDown Unit:=wdLine, Count:=nbL 'renvoie l'erreur "instrucion attendue"
    end sub
    Si quelqu'un à la solution

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Juillet 2012
    Messages : 7
    Par défaut
    Bonjour,

    Je n'ai toujours pas trouvé de solution. J'ai parcouru le forum et le net de long en large et les méthodes trouvées pour résoudre le même problème ne donnent rien.

    Je n'arrive pas à appliquer les méthodes "MoveDown Unit:=wdLine, ..." , "Extend.Expand unit:=wdTable" et "Collapse direction:=wdCollapseEnd".

    Je dois mal les appliquer et je ne vois pas ce qui cloche dans mon code

    J'y arrive pourtant en VBA

    Personne pour un coup de main ?

    Merci

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bonjour,

    en VBS n'utilise pas les paramètres nommés...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.MoveDown wdLine,nbL

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Juillet 2012
    Messages : 7
    Par défaut
    Bonjour,

    Un grand merci pour votre réponse ! Je n'avais pas remarqué que les paramètres ne devaient pas être nommés...

    Grace à votre réponse j'ai adapté la méthode "Tables.add" afin de garder la position "objWord.Selection" pour que le text (blablabla) ne soit plus supprimé avant le tableau....

    Par contre je n'arrive toujours pas à quitter le tableau. J'ai une erreur "Objet requis" avec Selection. Puis-je vous demander encore un peu de votre temps ?

    Le nouveau code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub Tableau2(nbL, nbC, NumTab)
    	objDoc.Tables.Add objWord.Selection.Range, nbL, nbC
    	Dim oTbl 'As Table
    	Set oTbl = objDoc.Tables(NumTab)
    	
    	oTbl.cell(1,1).select    'selectionne bien la cellule
        Selection.MoveDown wdLine,nbL 	
    
    end sub 
    
    
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    Set objDoc = objWord.Documents.Add()
    
    objWord.Selection.TypeText "blablabla"
    objWord.Selection.TypeParagraph
    
    call Tableau2(2, 2, 1) 'création du premier tableau 
    'call Tableau2(2, 2, 2) 'création du second tableau
    J'ai tenté aussi avec mais ca ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objWord.Selection.MoveDown wdLine,nbL

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bonjour,
    Je n'ai pas word sous la main ..mais essai d'appliquer ta methode move... directement as ton objet cellule .. Sans passer par un select.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment recuperer le nombre de page d'un doc word via vba?
    Par megapacman dans le forum VBA Word
    Réponses: 7
    Dernier message: 14/11/2006, 13h37
  2. Créer un tableau dans une CDialog
    Par Sachiel31 dans le forum MFC
    Réponses: 5
    Dernier message: 29/08/2006, 16h55
  3. créer plusieurs graphes dans le meme rapport
    Par err dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 11/08/2006, 17h15
  4. [VB.NET] Créer plusieurs tableaux dans word
    Par Dj Thunder dans le forum Windows Forms
    Réponses: 1
    Dernier message: 30/06/2006, 00h04
  5. Réponses: 14
    Dernier message: 13/10/2005, 12h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo