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 :

Problème de collage de tableau Excel dans Word [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 21
    Par défaut Problème de collage de tableau Excel dans Word
    bonjour,

    je suis confronté à un problème de rendu suite au collage d'un tableau excel dans word (au format html).

    Lorsque je copie une plage de cellule dans excel (ctrl+C) et que je le colle (ctrl+V) dans Word tout se passe bien et le rendu est satisfaisant.

    Par contre quand je tente d'automatiser cette action en VBA depuis Excel, le rendu n'est plus bon (j'utilise pourtant le code obtenu en enregistrant la macro de mes actions). En effet la hauteur des cellules est trop important.
    Vous pouvez visualiser le problème sur l'image en pièce jointe. Le tableau du bas correspond à mon souhait et à ce que j'obtiens manuellement. Celui du haut au résultat automatique.

    Voici le code utilisé (plage et fichier étant des variables définies dans un autre sub.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     plage.Copy
    Set WdApp = GetObject(, "Word.Application")
        Set WdDoc = WdApp.Documents.Open(Fichier)
    If WdDoc.Bookmarks.Exists(Nom) Then
    With WdApp
    .Selection.PasteExcelTable False, False, False
    End if
    J'ai essayé d'autres options d'export mais elles me posent d'autres problèmes comme le non respect des cellules fusionnées (export en RTF), et l'export en image ne convient pas non plus niveau rendu.

    Merci d'avance de votre aide.
    Images attachées Images attachées  

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Une solution pour coller des images que j'espère satisfaisante en utilisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .PasteSpecial Link:=False, DataType:=wdPasteBitmap, Placement:=wdFloatOverText, DisplayAsIcon:=False
    un exemple perso :
    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
    Private Sub Ouvreword()
    '
    ' Ce programme recherche
    On Error GoTo Line1
     
    Dim Wchemin As Variant
    Dim WrdApp As Object
    Dim wrdDoc As Object
    Dim Mycell As Range
     
    On Error GoTo Line1
     
     Wchemin = Application.GetOpenFilename("doc(*.doc), *.doc")
     
    Set WrdApp = CreateObject("Word.Application")
    Set wrdDoc = WrdApp.Documents.Open(Wchemin)
    WrdApp.Visible = True
    Dim range1 As Word.Range
    Dim range2 As Word.Range
    Dim Maligne As Integer
     
    Selection.Copy
     
    WrdApp.Selection.PasteSpecial Link:=False, DataType:=wdPasteBitmap, Placement:=wdFloatOverText, DisplayAsIcon:=False
     
    Line1:
     
    Set WrdApp = Nothing
    Set wrdDoc = Nothing
     
    If Err.Number > 0 Then
        MsgBox Err.Number & Err.Description
    End If
     
     
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 21
    Par défaut
    merci aalex_38 de ton aide.
    malheureusement ta solution ne résout pas mon problème. Avec ton code, j'obtiens des images "vides" si je désactive le rafraichissement de l'écran lors du fonctionnement de la macro.
    Une fois réactivé j'obtiens bien des images mais assez floues et surtout une partie des informations contenues dans les cellules n'apparait pas même si elles sont visibles sur le tableau d'origine sous Excel.

    Donc j'aimerai éviter de passer par des images. Sans images, la qualité visuelle est bonne, seule la hauteur des lignes diffèrent entre un collage manuel ou automatique.

    Encore merci en tous cas.

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Et comme ça ? :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement _
            :=wdInLine, DisplayAsIcon:=False

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 21
    Par défaut
    Avec ce dernier code, j'obtiens des objets excel qui correspondent à des parties seulement des tableaux. Les tableaux d'origine sont tronqués.

    Voici un apperçu de ce que j'obtiens (avec le même tableau que sur la première pièce jointe)

    Merci de ton aide
    Images attachées Images attachées  

  6. #6
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Lorsque je copie une plage de cellule dans excel (ctrl+C) et que je le colle (ctrl+V) dans Word tout se passe bien et le rendu est satisfaisant
    .

    Et si tu reproduit ça dans le code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Selection.Copy
    WrdApp.Selection.Paste
    Tu devrais avoir la même chose non ?

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

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