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

VBA Word Discussion :

Créer plusieurs tableaux dans un fichier word [WD-2019]


Sujet :

VBA Word

  1. #1
    Membre du Club
    Homme Profil pro
    Cadre technique en BE
    Inscrit en
    Juillet 2021
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre technique en BE
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 87
    Points : 52
    Points
    52
    Par défaut Créer plusieurs tableaux dans un fichier word
    Bonjour.
    J'utilise la méthode Add appliquée à la collection Tables d'un objet Word.Document comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim oWordDocTempWordImages      As Word.Document
    Dim oTable                      As Word.Table
     
    Set oWordDocTempWordImages = oWordApp.Documents.Open(sCheminCour & "TemplateWordImages" & EXT_WORD, , False) 
     
    ...
     
    'Boucle ajout et enrichissement de plusieurs tableaux dans oWordDocTempWordImages
     
    Set oTable = oWordDocTempWordImages.Tables.Add(oRangeWord, NumRows:=2, NumColumns:=2)
    Mon problème concerne l'intanciation de l'objet oRangeWord De manière à ce que les tableaux ne soient pas imbriqués mais insérés avec un pas de décalage :
    Par exemple ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set oRangeWord = oWordDocTempWordImages.Range(oWordDocTempWordImages.Paragraphs(iParagrapheW).Range.Start, oWordDocTempWordImages.Paragraphs(iParagrapheW).Range.End)
     
    ...
     
     
    iParagrapheW=iParagrapheW+1
    ...donne :

    Pièce jointe 651962

    Si vous vous questionnez sur certains éléments du code, sachez que je pilote Word depuis Access. J'avais dans un premier temps posté la question sur le forum Access VBA…
    Pouvez vous m'aider s'il vous plaît ?
    Merci

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'avais déjà lu la question sur le forum Access mais j'avoue que je ne comprends pas trop ce que vous cherchez à obtenir. Votre illustration ne me parle pas
    Est-ce plusieurs tableaux de deux lignes et deux colonnes distincts l'un de l'autre c'est à dire séparé par un saut de paragraphe ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre du Club
    Homme Profil pro
    Cadre technique en BE
    Inscrit en
    Juillet 2021
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre technique en BE
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    Bonjour.
    C’est bien ça, soit par un saut de paragraphe, soit simplement par une ligne. En tout cas les tableaux distincts placés les un après les autres.
    Désolé je suis sur mon portable, je ne peux pas envoyer les lignes de code, est-il possible d’instancier l’objet range comme ceci :
    Set oRange = oDocument.Range(oDocument.rows(iLigne), oDocument.rows(iLigne+2))
    ?
    Merci

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voici un exemple d'une procédure placée dans Access qui ouvre un document servant de modèle qui se nomme Courrier.docx placé dans un sous-répertoire Template
    Dès l'ouverture du document insère 4 tableaux de 3 lignes et 4 colonnes à partir de la fin du document en laissant un saut de paragraphe entre chaque tableau.

    Ce code est à adapter bien entendu à vos besoins

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Private Sub Main()
      ' Nécessite de référencer Microsoft Word xx.0 Object Library
      Const SubFolder As String = "\Template\"         ' Sous-répertoire des modèles
      Const TemplateName As String = "Courrier.docx"   ' Nom du modèle
      Dim oWrd As Word.Application                     ' Application Word
      Dim oDoc As Word.Document                        ' Document Word traité
      Dim oTable As Word.Table                         ' Tableau
      Dim rng As Word.Range
      Dim RootFolder As String                         ' Répertoire racine
      Dim FullName As String                           ' Nom complet
      Dim NewName As String
      Dim t As Variant, l As Variant
      Dim e As Integer
     
      Set oWrd = New Word.Application
      RootFolder = CurrentProject.Path                 ' Chemin du classeur
      FullName = RootFolder & SubFolder & TemplateName ' Chemin + Nom complet où se trouve le modèle
      Set oDoc = oWrd.Documents.Add(Template:=FullName)
      With oWrd: .Visible = True: .Activate: End With
     
      ' Boucle d'insertion des tableaux
      For e = 1 To 4
       Set rng = oDoc.Content
       With rng
        .Collapse Direction:=Word.WdCollapseDirection.wdCollapseEnd
        If e > 1 Then
          .InsertParagraphAfter ' Insère un paragraphe pour espacer les tableaux
          .Collapse Direction:=Word.WdCollapseDirection.wdCollapseEnd
        End If
       End With
       Set oTable = oDoc.Tables.Add(Range:=rng, NumRows:=3, NumColumns:=4)
      Next e
      Set oWrd = Nothing: Set oDoc = Nothing: Set oTable = Nothing: Set rng = Nothing
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre du Club
    Homme Profil pro
    Cadre technique en BE
    Inscrit en
    Juillet 2021
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre technique en BE
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    Bonsoir Philippe
    Effectivement j'ai bien fait d'ouvrir la discussion, j' aurais eu du mal à trouver.

    Ça fonctionne parfaitement dans l'environnement Access, je vous remercie et vais clôturer les deux discussions.
    Bonne soirée

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

Discussions similaires

  1. [AC-2019] Créer plusieurs tableaux dans un fichier word
    Par Carabistouilleur dans le forum VBA Access
    Réponses: 5
    Dernier message: 11/03/2024, 18h30
  2. [Toutes versions] Comparer plusieurs tableaux dans plusieurs fichiers word
    Par Respecting dans le forum Word
    Réponses: 1
    Dernier message: 14/12/2012, 22h17
  3. Calculer le nombre de tableaux dans un fichier word
    Par Pierrea4564 dans le forum VBA Word
    Réponses: 7
    Dernier message: 12/02/2011, 00h05
  4. [FPDF] Afficher plusieurs tableaux dans un fichier PDF
    Par Pakman80 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 30/07/2007, 15h19
  5. [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

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