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 :

Copier Coller d'un graph avec VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Apprentie
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Apprentie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Points : 21
    Points
    21
    Par défaut Copier Coller d'un graph avec VBA
    Bonjour à tous,

    J'essai pour l'instant de copier coller un graphe dans un autre onglet à l'aide d'un CommandButton.
    Le problème c'est que j'aimerai le placer où je veux dans la page et non sur A1!

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
        Sheets("Feuil1").Select
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartArea.Copy
        Sheets("Feuil2").Range("A10")
        ActiveSheet.Paste
    End Sub
    Mais ça ne fonctionne, il me marque un msg d'erreur sur le dernier Range ...

    Auriez-vous une idée de modif?

    Cordialement,

    Marion

  2. #2
    Membre actif Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 171
    Points : 276
    Points
    276
    Par défaut
    Bonjour Marion,

    J'ai trouvé une bidouille du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CommandButton1_Click()
    Dim myTabl As ListObject
        Sheets("Feuil1").Select
        Set myTabl = ActiveSheet.ListObjects("Graphique 1") 'es tu sure du nom? pour cela met un espion sur ActiveSheet.ListObjects 
        myTabl.Range.Select
        Selection.Copy
        Sheets("Feuil2").Range("A10")
        ActiveSheet.Paste
    End Sub
    bon courage

  3. #3
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mai 2014
    Messages : 35
    Points : 51
    Points
    51
    Par défaut
    Bonjour,

    Quel est l'erreur qui est affichée?

  4. #4
    Membre à l'essai
    Femme Profil pro
    Apprentie
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Apprentie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    Merci pour ton code! Mais ça ne fonctionne pas... il me met un msg d'erreur "l'indice n'appartient pas à la sélection".
    Je comprend pas forcément l'utilité de l'espion ... à vrai dire, je ne connai pas cette fonction LOL

    L'erreur affiché sur la 5eme ligne est : erreur d'éxécution 438 , propriété ou méthode non gérée par cet objet

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut





    L'erreur est évidente car la ligne est incomplète ! Aucun sens telle quelle …

    Edit : c'est bien la n°5 du post initial, la n°7 dans le post #2 …

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    Feuil1 doit contenir un objet graphique nommé Graphique 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Test()
     
    '1======Pour copier le graphique
    Worksheets("Feuil1").ChartObjects("Graphique 1").Copy
    Worksheets("Feuil2").Paste
     
    'Ou bien le coller comme image à partir de la cellule F14 de Feuil2
    'Worksheets("Feuil2").Range("F14").PasteSpecial
     
    '2======Pour déplacer le graphique
    Worksheets("Feuil1").ChartObjects("Graphique 1").Location Where:=xlLocationAsObject, Name:="Feuil1"
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Apprentie
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Apprentie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Points : 21
    Points
    21
    Par défaut
    Marc-L :
    Erreur post 1 : ligne 5
    Erreur post 2 : ligne 4

  8. #8
    Membre actif Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 171
    Points : 276
    Points
    276
    Par défaut
    Citation Envoyé par iio0n Voir le message
    L'erreur affiché sur la 5eme ligne est : erreur d'éxécution 438 , propriété ou méthode non gérée par cet objet
    cher moi ça tourne

    effectivement j'ai comme ligne:
    Range("C21").Select
    Fichiers attachés Fichiers attachés

  9. #9
    Membre à l'essai
    Femme Profil pro
    Apprentie
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Apprentie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Points : 21
    Points
    21
    Par défaut
    Merci beaucoup mercatog! Merci à tous aussi!
    Voici le code qui fonctionne comme sur des roulettes chez moi !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
        Sheets("Feuil1").Select
        Worksheets("Feuil1").ChartObjects("Graph").Copy
        Worksheets("Feuil2").Range("A10").PasteSpecial
    End Sub

  10. #10
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    1. Pas besoin de la la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil1").Select
    2. La copie n'est plus un graphique mais une image
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

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

Discussions similaires

  1. [XL-2007] VBA Copier Coller vers cellules precises avec des ranges aleatoires
    Par thibault12500 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/12/2013, 16h47
  2. [XL-2007] VBA copier coller d'une selection avec variable
    Par K.Barber dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/10/2013, 15h11
  3. Réponses: 3
    Dernier message: 12/04/2013, 09h18
  4. VB6 - copier/coller entre 2 appli ayant VBA - erreur 1004
    Par thomaz dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/10/2012, 16h47
  5. copier coller de calques visio en vba
    Par ninouchfis dans le forum VBA Project
    Réponses: 1
    Dernier message: 08/06/2012, 13h32

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