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

  1. #1
    Membre à l'essai
    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
    Points : 10
    Points
    10
    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 chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    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 à l'essai
    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
    Points : 10
    Points
    10
    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 chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    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 à l'essai
    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
    Points : 10
    Points
    10
    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 chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    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 ?

  7. #7
    Membre à l'essai
    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
    Points : 10
    Points
    10
    Par défaut
    C'est justement là mon problème et mon incompréhension. En utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Selection.Copy
    WrdApp.Selection.Paste
    ce qui correspond à Ctrl+C - Ctrl+V, je n'obtiens pas le même résultat que manuellement (même différence qu'entre les deux tableaux de la première pièce jointe).

  8. #8
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Pourrai-tu joindre un fichier excel avec ton tableau, que je puisse tester.

  9. #9
    Membre à l'essai
    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
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    voici le tableau incriminé dans un fichier .xls

    Merci de votre aide.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Bonjour
    Rien à faire, je n'arrive pas reproduire le problème. Le tableau collé dans word est le même que celui d'Excel (j'utilise des versions 2003).
    Voila le code que j'ai utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub testW()
        Dim wd As Word.Application
     
     
        Set wd = CreateObject("word.application")
        wd.Visible = True
        wd.Documents.Add
        wd.Selection.TypeParagraph
        Selection.Copy 'copie les cellules sélectionnée
        wd.Selection.Paste
        Set wd = Nothing
     
    End Sub
    Peut-être cela vient-il des formats utilisés dans le fichiers Word de destination !

    --------------
    Frédéric
    http://www.access-developpement.com

  11. #11
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Je viens de tester également et pas de problèems particulier.

  12. #12
    Membre à l'essai
    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
    Points : 10
    Points
    10
    Par défaut
    Merci de votre aide.

    En utilisant votre code j'ai le même problème. Si je le fais manuellement il n'y a pas de problème. Comme vous le dites le problème doit bien venir de Word.

    Reste à définir quel paramètre de collage dans word, ou de format pose problème.

  13. #13
    Membre à l'essai
    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
    Points : 10
    Points
    10
    Par défaut
    Que j'essaye d'y voir plus clair, quels sont vos paramètres d'options de couper coller dans word? En comparant je trouverai peut être le problème.

    Merci à tous

  14. #14
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Mes options dans word 2003

  15. #15
    Membre à l'essai
    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
    Points : 10
    Points
    10
    Par défaut
    Bon j'ai les mêmes paramètres...

  16. #16
    Membre à l'essai
    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
    Points : 10
    Points
    10
    Par défaut
    J'ai finalement résolu mon problème en ajoutant une macro Word. En fait comme supposé par fgiambelluco, le problème venait de styles par défauts dans Word.
    Par contre je dois conserver ces styles dans mes documents. La macro que j'ai ajouté dans Word, modifie donc ponctuellement ces styles pour les tableaux qui y sont collés.

    Merci de votre aide

+ 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