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 :

Coller graphique avec mise en forme source [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 706
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 706
    Par défaut Coller graphique avec mise en forme source
    Bonjour,

    Je cherche à copier-coller un graphique en conservant la mise en forme source avec VBA, mais je n'arrive pas à trouver la syntaxe. Je connais la syntaxe avec pasteSpecial, mais cela s'applique à des cellules et non pas à des graphiques. J'ai essayé avec l'enregistreur de macro (pour coller : clique droit > conserver mise en forme source), mais il me sort ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartArea.Copy
        Range("A1").Select
    Aucun code concernant le collage !? Il s'arrête à la sélection de la cellule où je vais coller.
    Connaissez-vous la syntaxe associé à ce copier-coller en conservant la mise en forme source pour un graphique?

    Merci d'avance

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 587
    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 587
    Par défaut
    Bonjour

    La copie d'un graphique ne modifie pas son aspect sauf éventuellement couleurs basées sur la thème actif.

    Peux-tu être plus précis sur le PB que tu rencontres.

  3. #3
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 706
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 706
    Par défaut
    Ce sont justement les couleurs basées sur le thème actif que je veux conserver.
    Quand, je fais la manipulation à la main (clique droit > conserver la mise en forme source), j'ai le résultat que j'aimerais obtenir, mais je n'arrive pas à trouver l'équivalent en macro.
    Voici le grahique initial :
    Nom : graph1.png
Affichages : 2301
Taille : 6,8 Ko
    Dans une autre feuille qui n'a pas les mêmes couleurs de thème, si je fais un copier-coller normal (ctrl+C - ctrl+V), j'obtiens :
    Nom : graph2.png
Affichages : 2336
Taille : 9,2 Ko
    Si, je fais un copier-coller en conservant la mise en forme source, comme cela :
    Nom : graph3.png
Affichages : 2423
Taille : 11,9 Ko
    J'obtiens :
    Nom : graph4.png
Affichages : 2262
Taille : 8,7 Ko
    Ce que j'aimerais obtenir grâce à VBA.

  4. #4
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut Coller graphique avec mise en forme source
    Avec excel 2 000 avec l'enregistreur de macro j'arrive à ceci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Macro1()
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartArea.Select
        ActiveChart.ChartArea.copy
        Sheets("Feuil2").Select
        ActiveSheet.Paste
     
    End Sub
    Ensuite avec la Macro1, j'ai le résultat que tu souhaite

    bonne journée.

  5. #5
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 706
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 706
    Par défaut
    Merci pour ta réponse, a_diard. C'est ce que j'avais fait en premier jet, mais ceci correspond à un copier-coller basique et ne conserve donc pas la mise en forme source.

    EDIT : je viens de voir le message de mercatog, merci J'ai aussi essayé cette syntaxe, mais j'obtiens le message d'erreur "La méthode PasteSpecial de la classe Worksheet a échoué". J'ai l'impression que pasteSpecial ne marche que pour des plages de cellules, mais peut-être ai-je tord ?

  6. #6
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    J'ai essayé ceci, pour moi ça fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub copy()
     
     
      ActiveSheet.ChartObjects("Graphique 1").copy
     
    Worksheets("Feuil2").Range("A1").PasteSpecial (xlPasteAll)
     
     
    End Sub
    avec le code de mercatog, j'avais la même erreur que toi.

    bonne journée.

  7. #7
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Worksheets("Feuil1").ChartObjects("Graphique 1").Chart.ChartArea.Copy
     
    Worksheets("Feuil2").Range("M12").PasteSpecial xlPasteFormats

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 08/12/2014, 09h32
  2. [XL-2013] Copier Coller en conservant la mise en forme source
    Par Marneus22 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/08/2013, 19h33
  3. [PPT-2010] Copier Coller en conservant la mise en forme source
    Par Marneus22 dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 29/08/2013, 19h32
  4. [XL-2007] Copie/coller avec mise en forme
    Par Pierre67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/03/2013, 13h34
  5. [XL-2003] tableau avec mise en forme coller dans autre feuil
    Par antoine2933 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/07/2011, 18h47

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