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 :

Exporter graphique vers image


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de mat-tech
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 202
    Points : 124
    Points
    124
    Par défaut Exporter graphique vers image
    Bonjour à tous,
    j'aimerais exporter 4 graphiques en une seul image, miracle j'ai trouvé exactement le code qu'il me falait dans les Faqs, mais il y a une erreur ...
    J'ai 4 graphiques à exporter sur la "Feuil2"

    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
     
    Option Explicit
     
    Private Const Fichier As String = "C:\ImageTemp.gif"
     
     
    Sub ExporteGIF_GroupeGraphiques()
       Dim Sh As Shape
       Dim Tableau(1 To 4) As String
       Dim i As Integer, Nb As Integer
       'Supprime l'image temporaire si elle existe
       If Dir(Fichier) <> "" Then Kill Fichier
     
        'Boucle sur les 4 premiers graphiques de la feuille active
        For i = 1 To 4
            Tableau(i) = ActiveSheet.ChartObjects(i).Name
        Next
     
        'Regroupe les graphiques
        Set Sh = ActiveSheet.Shapes.Range(Tableau).Group
     
     
        'copie la forme
        Sh.CopyPicture
        'crée un graphique
        With ActiveSheet.ChartObjects.Add(0, 0, _
                            Sh.Width, Sh.Height).Chart
            .Paste 'colle l'image dans graphique
            ' enregistre le graphique au format gif
            .export Fichier, "GIF"
        End With
     
        Nb = ActiveSheet.ChartObjects.Count
        'supprime le graphique
        ActiveSheet.ChartObjects(Nb).Delete
     
        Sh.Ungroup
    End Sub

  2. #2
    Membre régulier Avatar de mat-tech
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 202
    Points : 124
    Points
    124
    Par défaut
    Sans doute parceque l'erreur est :
    Erreur d'exécution '1004'
    Ce paramètre n'a pas une valeur valide
    Esi je lance le débogage, il stop à la ligne

    Set Sh = ActiveSheet.Shapes.Range(Tableau).Group

  3. #3
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Merci d'avoir précisé l'erreur

    J'ai ramé sur ce code...je suis parvenu à le faire fonctionner en changeant la déclaration de la variable Tableau de type Variant au lieu de type String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Tableau(1 To 4) As Variant
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  4. #4
    Membre régulier Avatar de mat-tech
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 202
    Points : 124
    Points
    124
    Par défaut
    Est-il possible, lors de l'enregistrement de l'image d'avoir l'invite 'Enregistrer sous ...', afin de pouvoir choisir le nom et l'endroit où on veut enregistrer l'image ainsi créé ?

  5. #5
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Un truc de ce style ? (remplace le code initial par celui-ci)
    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
    Option Explicit
     
    Sub ExporteGIF_GroupeGraphiques()
    Dim Fichier As Variant, Tableau(1 To 4) As Variant
    Dim Sh As Shape, i As Integer, Nb As Integer
     
    'Boucle sur les 4 premiers graphiques de la feuille active
    For i = 1 To 4
        Tableau(i) = ActiveSheet.ChartObjects(i).Name
    Next
     
    'Regroupe les graphiques
    Set Sh = ActiveSheet.Shapes.Range(Tableau).Group
     
    'copie la forme
    Sh.CopyPicture
     
    'crée un graphique
    With ActiveSheet.ChartObjects.Add(0, 0, Sh.Width, Sh.Height).Chart
        .Paste 'colle l'image dans graphique
     
        ' enregistre le graphique au format gif
        Fichier = Application.GetSaveAsFilename(fileFilter:="Fichier Image (*.gif), *.gif")
        If Fichier = False Then
            MsgBox "vous avez annulé l'opération" & Chr(10) & "l'image ne sera pas exportée"
        Else
            .Export Fichier, "GIF"
        End If
    End With
     
    Nb = ActiveSheet.ChartObjects.Count
    'supprime le graphique
    ActiveSheet.ChartObjects(Nb).Delete
     
    Sh.Ungroup
    End Sub
    Pour info afin de compléter l'explication de la FAQ, quelle version d'Excel utilises-tu ?
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  6. #6
    Membre régulier Avatar de mat-tech
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 202
    Points : 124
    Points
    124
    Par défaut
    Dans le bas de l'image exporter est-il possible d'y inclure le pieds de page de la Feuil d'où ont été copiés les graphiques ?

  7. #7
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Si c'est toujours d'actualité ...une solution via une zone de texte dans le fichier joint.

    test graph.zip
    .
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  8. #8
    Membre régulier Avatar de mat-tech
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 202
    Points : 124
    Points
    124
    Par défaut
    Magnifique, c'est exactement la réponse à ma question, merci beaucoup

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

Discussions similaires

  1. Export graphique vers Excel
    Par sweetmercy dans le forum VBA Access
    Réponses: 7
    Dernier message: 20/01/2011, 10h38
  2. exporter datagridview vers image
    Par salihovic dans le forum Windows Forms
    Réponses: 9
    Dernier message: 14/06/2010, 10h30
  3. [AC-2003] [VBA] - Export d'un graphique vers un fichier image
    Par GillesDeVuif dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/07/2009, 00h46
  4. Export graphique vers word
    Par e040098k dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 28/08/2008, 23h17
  5. Exporter graphique vers word
    Par Junior_jef dans le forum Access
    Réponses: 1
    Dernier message: 31/08/2006, 11h25

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