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

Macros et VBA Excel Discussion :

Inserer à un endroit précis un tableau Excel Dans Word


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 71
    Par défaut Inserer à un endroit précis un tableau Excel Dans Word
    Bonjour à tous,
    Le code suivant pour copier une plage à la suite d'un document word fonctionne.

    Cependant j'aimerais ne pas copier à la suite, mais plutot dans le tableau "Contexte" de mon fichier word (voir image). Si vous avez des idées, je serais vraiment preneur. Bonne soirée

    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
     
     
    Dim objWord As Object
    Dim objDoc As Object
    Dim NDF As String
    Dim PlageACopier
     
    NDF = ActiveWorkbook.Path & "\" & "Fiche_" & Format(Now(), "yyyymmdd_hhmm")
     
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    'Set objDoc = objWord.Documents.Add
    Set objDoc = objWord.Documents.Open(ThisWorkbook.Path & "\" & "Intro.docx")
     
     
    '.... La Macro.....
     
    'Et Ensuite la Copie à la suite de intro.docx
     
    Set PlageACopier = Range(r,c), .Cells(r2,c2))
     
                            PlageACopier.Copy
     
                      With objDoc.Paragraphs.Last.Range
                                    .PasteExcelTable False, False, False
                                    .Tables(1).AutoFitBehavior wdAutoFitWindow
                                    .Tables(1).Rows.Alignment = 0.2
                                    .InsertAfter vbCr
                                End With
                                Application.CutCopyMode = False

    EDIT :
    Quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objDoc.Tables(2).Columns(3).Cells(2).Range.Text = 1
    ca fonctionne mais evidemment à la palce de 1 j'aimerais copier mes tableaux les uns a la suite des autres dans le cadre word (qui correspond à Tables(2).Columns(3).Cells(2))

    (voir image)


  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 71
    Par défaut
    Je viens de trouver la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wordDoc.Tables(2).Columns(1).Cells(2).Range.PasteAsNestedTable
    mais cela ne marche qu'une fois, au 2eme tour de boucle pour mettre le 2eme tableau, excel me dit : le membre de la collection n'existe pas

    En essayant d'ajouter une ligne à mon tableau Word avec objDoc.Range.Tables(2).Rows.Add , cela ne marche toujours pas en essayant d'assigner le tableau suivant a wordDoc.Tables(2).Columns(1).Cells(3).Range.PasteAsNestedTable

    EDIT : c'est pour la perfection mais pas necessaire non plus, parfois il y a des tableaux plus grand que la page en portrait comme ceci, et l'option
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Tables(1).AutoFitBehavior wdAutoFitWindow
    "ratattine" le tableau et les données dedans pour que ca corresponde à la largeur de la page. J'ai pensé au mode paysage mais je n'arrive pas à activer "paysage pour la page en cours seulement"

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par neflerine Voir le message
    Bonjour,

    Si vous avez toujours un problème et si vous avez la possibilité de mettre en ligne le fichier Word que vous affichez à l'écran, il serait intéressant de voir comment il est constitué (avec les tableaux préexistants).
    Pour la mise en paysage, il vous faut insérer des sauts de section.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 71
    Par défaut
    Merci Eric pour ta réponse, je suis parti sur une autre direction pour l'instant.
    J'essaye d'apprendre à rajouter des signets et à m'en servir de repère pour insérer les tableaux, je reviens sur le topic dans quelques jours quand j'aurais un peu approfondi le sujet.

    Le fichier word n'a rien de spécial, juste un tableau d’entête en première page, ensuite le cœur du document avec des tableaux a copier, et un tableau conclusion en dernière page du rapport word.

    En tout cas, récupérer l'index des tableaux existant dans le document n'a pas l'air d'être une mince affaire

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par neflerine Voir le message
    Bonjour,


    En tout cas, récupérer l'index des tableaux existant dans le document n'a pas l'air d'être une mince affaire
    ???


    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    Option Explicit
     
    Sub Test()
     
        With ActiveDocument
             Debug.Print .Tables.Count
        End With
     
    End Sub
     
     
    Sub TestSelectionnerUnTableau()
     
        SelectionnerUnTableau ActiveDocument, 4
     
    End Sub
     
    Sub SelectionnerUnTableau(ByVal DocEnCours As Document, ByVal NumeroDeTableau As Integer)
     
        With DocEnCours
     
             If .Tables.Count >= NumeroDeTableau Then
                 .Tables(NumeroDeTableau).Range.Select
             End If
     
        End With
     
    End Sub
     
     
    Sub TestSelectionnerUnTableauAvecSonSignet()
     
        SelectionnerUnTableauParSonSignet ActiveDocument, "Tableau5"
     
    End Sub
     
    Sub SelectionnerUnTableauParSonSignet(ByVal DocEnCours As Document, ByVal NomDuSignet As String)
     
        With DocEnCours
     
             If .Bookmarks.Exists(NomDuSignet) = False Then Exit Sub
     
             .Bookmarks(NomDuSignet).Select
             Selection.Expand unit:=15 'wdTable
     
     
        End With
     
    End Sub

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 71
    Par défaut
    Alors la chapeau pour cette rapidité, un grand merci.
    Je vais tester ce code qui à la lecture répond à ce que je souhaitais faire .
    La ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Expand unit:=15 'wdTable
    va bien m'aider pour sélectionner tout le tableau à partir du signet et faire des autofit
    Je te fais un retour très vite merci encore

Discussions similaires

  1. Exporter Tableau excel dans Word avec Visual Basic
    Par charfamine dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/03/2009, 16h21
  2. Insertion d'un tableau Excel dans Word via Ole
    Par blondelle dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/12/2008, 10h55
  3. [W-07] Insertion tableau excel dans Word
    Par bstcricq dans le forum Word
    Réponses: 3
    Dernier message: 24/09/2008, 17h45
  4. Insérer un Tableau excel dans Word via VBA depuis Excel
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/05/2008, 08h52

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