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 :

Créer un diagramme "camembert"


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Par défaut Créer un diagramme "camembert"
    Bonjour,
    J'ai réalisé une macro sur Excel, en VB6.
    En ouvrant une "userform" je souhaiterais voir un tableau avec mes valeurs (ce que j'ai fait avec des label) et un diagramme "camembert" correspondant au tableau (donc aux mêmes valeurs).
    J'ai essayé de mettre un "ChartSpace" mais on me l'interdit.

    Que faire d'autre, sachant que mes valeurs sont variables ?

  2. #2
    Membre chevronné Avatar de jackborogar
    Homme Profil pro
    Etudiant Ingénierie Financière
    Inscrit en
    Avril 2012
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant Ingénierie Financière
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 290
    Par défaut
    Bonjour,

    Pour Afficher ton tableau dans la feuille "ALLO" par exemple utilise un SpreadSheet et ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub cbDonnées_Click()
        On Error Resume Next
        Me.Controls.Remove (Img.Name)
        With Me.Spreadsheet1
            .Visible = True
            Set Plage = Sheets("ALLO").Range("Une PLAGE")
            For Each c In Plage
                .Cells(c.Row - Plage.Row + 1, c.Column - Plage.Column + 1) = c.Value
                .Cells(c.Row - Plage.Row + 1, c.Column - Plage.Column + 1).NumberFormat = c.NumberFormat
            Next c
        End With
    End Sub

    Pour ton diagramme met le dans la même feuille ALLO affiche ton diagramme et va le chercher avec ce code:

    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
    Private Sub cbGraphique_Click()
        Me.Spreadsheet1.Visible = False
        On Error Resume Next
        Me.Controls.Remove (Img.Name)
        On Error GoTo 0
        Set Img = Me.Controls.Add("forms.Image.1")
        With Img
            .Left = 100
            .Width = Me.cbExit.Left
            .Height = Me.cbExit.Top
            .Top = 0
        End With
        With Sheets("ALLO")
        Set g = Sheets("ALLO").ChartObjects(1).Chart
        Fichier = ActiveWorkbook.Path & "\" & "graphe.gif"
        g.Export Filename:=Fichier, FilterName:="GIF"
        Img.Picture = LoadPicture(Fichier)
     
        End With
    End Sub
    Cdt,

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Par défaut
    Merci jackborogar pour ta rapidité ^^

    Je viens de lire ta solution mais j'ai fait différemment juste avant, et ça fonctionne !
    J'ai ajouté une feuille à mon fichier Excel et créé un tableau fixe avec mes noms de lignes et colonnes. J'ai laissé les cases "valeurs variables" vides. Sur cette même feuille j'ai créé un diagramme "camembert" en fonction des noms et valeurs variables.
    Dans ma macro, les variables sont affectées aux cellules correspondantes du tableau de la nouvelle feuille. Le "camembert" se remplie automatiquement.

  4. #4
    Membre chevronné Avatar de jackborogar
    Homme Profil pro
    Etudiant Ingénierie Financière
    Inscrit en
    Avril 2012
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant Ingénierie Financière
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 290
    Par défaut
    De rien, le code juste au dessus que je t'ai proposé fait exactement la même chose.

    Tu peux mettre le sujet en RESOLU

    A bientôt

    Cdt,

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

Discussions similaires

  1. [VB.Net] "Impossible de créer le handle de fenêtre"
    Par cedric_g dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/04/2006, 12h49

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