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 :

copie de tableau Excel vers Word. probleme Avec pastespecial, tableau rogné (format portrait & paysage) [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut copie de tableau Excel vers Word. probleme Avec pastespecial, tableau rogné (format portrait & paysage)
    Bonjour,


    J'ai une macro dans mon fichier excel qui a pour but de copier des tableaux excel pour les coller dans word. Cela me permet de créer un rapport que j'exporte au format pdf avec pdf creator.

    Jusqu'a aujourd'hui tout se passait bien, j'ai environ 10 tableaux qui se copient dans mon document word. J'utilise la méthode des signets pour désigner l'emplacement de mon tableau.

    voici le code que j'utilise :

    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
    ' Boucle sur 6 autres tableaux ( Titre B et les 2 premier Tab titre C)
    '----------------------------------------------------------------------'
        For IndexSheet = indSheetCmd3 To indSheetCmd8 ' indSheetCmdX = constante contenant l'index d'une feuille
     
             ' Copie du tableau dans le presse papier
             Worksheets(IndexSheet).Range("B8:I40").Copy 
             ' Méthode Pastespecial ; colle le tableau sur le bon Indexsignet
             .Bookmarks("Signet" & IndexSignet).Range.PasteSpecial Link:=False, DataType:=wdPasteMetafilePicture, _
             Placement:=wdFloatOverText, DisplayAsIcon:=False
     
             ' Mise en forme du tableau dans word (centrer en autre)
             With .Shapes(IndexSignet)
                .LockAspectRatio = msoTrue
                .Left = wdShapeCenter
                .ZOrder msoBringInFrontOfText
             End With
     
             ' 
             IndexSignet = IndexSignet + 1
             Application.CutCopyMode = False
        Next IndexSheet
    Dans ce rapport je dois rajouter 4 tableaux. Ils sont un peu plus large que les autres. J'ai utilisé le même code (cf ci dessus) pour les importer dans word. L'importation fonctionne mais "l'image" est rogné, il manque trois colonnes. Le format de la page lors de l'importation est en portrait. J'ai fais dérouler mon code pas à pas et le tableau est bien copier entièrement dans excel. Le problème vient donc du manque de place horizontalement. pastespecial ne colle que ce qu'il peut et "rogne le reste". Cela n'adapte pas l'image entièrement au format de page (ou alors je me trompe quelque part...). La solution est donc de passer en format paysage pour avoir une meilleur lisiblité du tableau. A ma grande surprise j'ai le même souci. L'image se colle comme si elle était sur un format portrait. La taille du tableau (ou de l'image tableau) collé est exactement la même que mes autres tableaux et elle est rogné

    Je précise que c'est bien après avoir éxecuté pastespecial que cela se produit, le code de mise en forme (cf commentaire code) n'est pas la raison.

    ce que j'aimerais obtenir :

    1 - Que le tableau s'adapte au format paysage pour une meilleur lisiblité
    2 - que l'ensemble du tableau soit collé.

    j'ai trouvé ceci qui doit correspondre à mon problème (voir ce lien) :

    Inserts the contents of the Clipboard. Unlike with the Paste method, with PasteSpecial you can control the format of the pasted information and (optionally) establish a link to the source file (for example, a Microsoft Excel worksheet).

    Note If you don't want to replace the contents of the specified range or selection, use the Collapse method before you use this method. When you use this method, the range or selection doesn't expand to include the contents of the Clipboard.
    Il ya donc cette méthode colapse mais j'avoue ne pas vraiment cerner comment la mettre en place, bref je suis un peu perdu...

    Si quelqu'un a une solution, voit pourquoi la méthode pastespecial réagi de cette facon, cela m'aiderai énormément car je suis bloqué...


    Merci pour votre aide

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Bonjour

    Cela ne va pas t'aider beaucoup mais j'ai remarqué qu'il semble y avoir une limite sur la taille d'un tableau Excel que l'on peut passer par copier coller.

    Le collapse semble plutot utile quand un tableau diminue de taille.

    Si on colle en image point (et non métafichier), on peut appliquer une réduction de taille pour tout voir.

    Testé sur 2002 et 2010.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut
    Je réponds avec pas mal de retard...

    J'ai trouvé la solution peu de temps après avoir lu ton message. J'ai utilisé wdPasteEnhancedMetafile et ca m'a permis de pouvoir redimensionner mes images importés

    Ce qui donne au niveau de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
             Worksheets(indSheetCmd26).Range("B7:H76").Copy
             IndexSignet = 18
             .Bookmarks("Signet" & IndexSignet).Range.PasteSpecial , Link:=False, DataType:=wdPasteEnhancedMetafile, _
             DisplayAsIcon:=False
     
             With .Shapes(IndexSignet)
                .LockAspectRatio = msoTrue
                .RelativeVerticalPosition = wdRelativeVerticalPositionLine
                .Left = wdShapeCenter
                .ZOrder msoBringInFrontOfText
                .Width = 350
             End With

    Merci

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

Discussions similaires

  1. Macro import tableau excel vers word
    Par mogo107 dans le forum VBA Word
    Réponses: 32
    Dernier message: 12/10/2018, 19h11
  2. [XL-2003] Copier un tableau excel vers word
    Par somig dans le forum Excel
    Réponses: 1
    Dernier message: 23/02/2013, 10h44
  3. Export d'un tableau Excel vers Word
    Par Flo88 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 26/01/2009, 15h39
  4. export tableau excel vers word
    Par camzo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/10/2007, 18h53
  5. [VBA-E]Copie graphique de excel vers word
    Par conconbrr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/02/2006, 10h49

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