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 :

Gérer les export de graphique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 63
    Par défaut Gérer les export de graphique
    Une question que j'avais soulevé mais qui n'a pas trouvé de réponse :
    comment est il possible d'exporter des graphique simultanément ? i.e comment créer une feuille .jpeg avec 4 graphiques au lieu d'un ?

    Merci

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    pas étonnant que tu n'a pas eu de réponse, les explications que tu donnent ne sont pas fort explicit.
    ? i.e comment créer une feuille .jpeg avec 4 graphiques au lieu d'un ?
    i.e c'est internet explorer ?
    D'après ta question il semblerait que tu sais comment faire pour 1 ?
    pour en copier 4, tu peu les sélectionnés ensemble avec (ex pour 2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveSheet.Shapes.Range(Array("Chart 1", "Chart 2")).Select
    A+

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 63
    Par défaut
    Non i.e signifie in extenso...

    Je recommence l'explication : je sais exporter un graphique (il y a une fonction toute bête pour cela) mais cette fonction crée 1 fichier jpeg avec 1 graphique. Je voudrais créer 1 fichier jpeg avec 4 graphiques.

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir


    j'espère que cet exemple pourra t'aider

    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


    bonne soirée
    michel

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 63
    Par défaut
    ça à l'air de bien correspondre mais j'ai un problème d'execution de ton code :
    Set Sh = ActiveSheet.Shapes.Range(Tableau).Group
    il m'annonce que "ce paramètre n'a pas une valeur valide".
    Je ne sais pas trop ce que ça signifie...
    Par ailleurs j'arrive pas à comprendre pourquoi, mais apparemment i a atteint la valeur 5...

    Je n'arrive pas à savoir que est l'action exacte de .Group, l'aide n'est pas des pllus lumineuse...

    Merci pour ton aide !

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Hum, comme cela m'interresse également j'ai testé... et, la même erreur.
    C'est un problème de langue..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        'Boucle sur les 4 premiers graphiques de la feuille active
        For i = 1 To 4
            Tableau(i) = ActiveSheet.ChartObjects(i).Name 
            'avec l'essai  = "Chart5", "Chart6" etc..
        Next
    'Et en macro...
        ActiveSheet.ChartObjects("Graphique 5").Activate
        ActiveSheet.ChartObjects("Graphique 6").Activate
    'et aussi..
        ActiveSheet.ChartObjects("Graphique 5").Select
        a$ = Selection.Name ' = Chart5
    Autre test..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'C'est exemple fonctionne
        ActiveSheet.ChartObjects("Graphique 5").Activate
        ActiveChart.PlotArea.Select
        ActiveChart.ChartArea.Select
    'C'est exemple des fois ca marche et des fois erreur 1004 ??
        ActiveSheet.ChartObjects("Graphique 5").select
        a$ = Selection.Name
        ActiveSheet.ChartObjects(a$).Activate
        ActiveChart.PlotArea.Select
        ActiveChart.ChartArea.Select
    Probablement l'origine du problème.

    A+

  7. #7
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir


    Set Sh = ActiveSheet.Shapes.Range(Tableau).Group
    il m'annonce que "ce paramètre n'a pas une valeur valide".
    Je n'ai pas rencontré de soucis sur mon poste (Excel2007)


    Par ailleurs j'arrive pas à comprendre pourquoi, mais apparemment i a atteint la valeur 5...
    C'est normal lorsque tu termines ta boucle


    Je n'arrive pas à savoir que est l'action exacte de .Group,
    Permet de regrouper plusieurs formes (tes graphiques) avant de les exporter au format image.



    bonne soirée
    michel

Discussions similaires

  1. [MySQL] Comment gérer les ' et " dans une table pour exporter en excel
    Par morgan47 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/11/2011, 19h42
  2. Gérer les exports de BO vers Excel
    Par PAYASS59 dans le forum Webi
    Réponses: 3
    Dernier message: 13/10/2010, 15h28
  3. Réponses: 1
    Dernier message: 11/06/2010, 19h36
  4. Outils graphique sous windows pour gérer les bases SQLite
    Par Louis Griffont dans le forum SQLite
    Réponses: 8
    Dernier message: 21/04/2008, 14h09

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