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 :

centrer un graphique après un collage spécial de excel à word [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2017
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 25
    Par défaut centrer un graphique après un collage spécial de excel à word
    Bonjour,

    j'espère que tout le monde va bien par cette période.

    je reviens une nouvelle fois vers vous car je n'ai pas trouvé la solution par moi-même et sur ce forum (à moins que je n'ai pas bien vu...).

    j'ai un graphique excel en place d'une feuille excel et j'arrive à le coller en métafichier améliorer dans word (sur un signet). je souhaiterai qu'il se centre sur la page à l'endroit du signet au lieu de se mettre à gauche. avez-vous une solution ?

    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
    Sub OuvrirFichierWord()
    Dim Var1 As String, Var2 As String
    Dim appWord As Object
    Set appWord = CreateObject("Word.application")
    appWord.Visible = True
    Set DocWord = appWord.Documents.Open("C:\Users\Pao\Desktop\trame rapport\monrapport.docx")
    Var1 = "COV carbone" 'nom de mon onglet
    Var2 = "graphique1" 'nom de mon signet dans word
    Call CollageGraphique(Var1, Var2)
    End Sub
     
    Sub CollageGraphique(nomgraphique, nomonglet)
    Sheets(nomgraphique).ChartArea.Copy
    DocWord.Bookmarks.Item(nomonglet).Range.PasteSpecial _
    link:=False, DataType:=wdPasteMetafilePicture, Placement:=wdAutoFitWindow
    End Sub
    Est-il également possible d'adapter le graphique (coller en métafichier améliorer) à la largeur de la page où se trouve le signet?

    Merci d'avance pour votre aide.

    Pao

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

    En phase de développement, vous avez tout intérêt à travailler directement avec des objets Word, vous bénéficierez de l'intellisens (un . derrière votre variable vous donne toutes les propriétés et les méthodes applicables à l'objet, ce qui n'est pas possible en late binding), sinon c'est la galère. Je n'avais pas d'onglet de type chart, j'ai adapté l'exemple à un ChartObject.

    En fait, il vous faut régler la largeur de la forme à la largeur du document :

    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
     
    Sub OuvrirFichierWord()
     
    Dim ShGraphique As Worksheet
    Dim MonGraphe As Chart
    Dim AppWord As Word.Application
    Dim DocWord As Word.Document
    Dim MonShapeWord As Word.Shape
    Dim NbShapes As Integer
     
          Set ShGraphique = Sheets("COV carbone")
          Set MonGraphe = ShGraphique.ChartObjects(1).Chart
     
          Set AppWord = CreateObject("Word.application")
          AppWord.Visible = True
     
          Set DocWord = AppWord.Documents.Open("C:\Users\Pao\Desktop\trame rapport\monrapport.docx")
     
           MonGraphe.CopyPicture
           With DocWord
                .Bookmarks("graphique1").Range.PasteSpecial _
                    link:=False, DataType:=wdPasteMetafilePicture, Placement:=wdAutoFitWindow
     
                NbShapes = .Shapes.Count
                Set MonShapeWord = .Shapes(NbShapes)
                DoEvents
                With MonShapeWord
                     .Width = CentimetersToPoints(16#)
                End With
     
           End With
     
           Set DocWord = Nothing
           Set AppWord = Nothing
           Set MonShapeWord = Nothing
           Set ShGraphique = Nothing
           Set MonGraphe = Nothing
     
    End Sub

  3. #3
    Membre averti
    Femme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2017
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 25
    Par défaut
    merci pour ton aide eric. cela m'a permis de trouver une solution.

    bonne journée,

    pao

    je clos le post

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/04/2020, 17h36
  2. [WD-2013] Mise en page Collage avec liaison Excel - Word
    Par barrym78 dans le forum Word
    Réponses: 2
    Dernier message: 28/04/2017, 11h21
  3. Réponses: 1
    Dernier message: 08/04/2013, 10h03
  4. Copier Collage Spécial d'Excel vers Word
    Par jojomars dans le forum Word
    Réponses: 3
    Dernier message: 25/11/2008, 18h16
  5. Collage spécial depuis Excel vers Word
    Par doudoustephane dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 03/04/2008, 17h14

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