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 :

Tracé de camembert vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2017
    Messages : 38
    Par défaut Tracé de camembert vba
    Bonjour à tous,
    Voila je viens vers vous pour un bête tracer de camembert. J'ai utilisé l'enregistreur de macro pour débuter mais je n'ai pas réussi à aboutir : un message d'erreur apparait quand j'essais de déclarer les entrées avec ActiveChart.SeriesCollection(1).Values ...
    voici mon 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    Sub camembert()
    '
     
     
    ''''
     
    Set Sh = Sheets("results")
     
    Sh.Shapes.AddChart.Select 'creation d'un graphe
     
     
     
    With ActiveChart 'activation du graphe et modification
            .HasTitle = True 'on lui met un titre
            .ChartTitle.Characters.Text = "Répartition des pertes électriques "
            .ChartType = xlPie 'camembert
            .SeriesCollection.NewSeries
        End With
     
    ActiveChart.SeriesCollection(1).Values = "=Results!$L$9;Results!$L$11;Results!$L$12"
    ActiveChart.SeriesCollection(1).XValues = "=Results!$K$9;Results!$K$11;Results!$K$12"
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).ApplyDataLabels
    ActiveChart.SeriesCollection(1).DataLabels.Select
    Selection.ShowPercentage = True
     
     
    End Sub
    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par supengalere Voir le message
    Bonjour,

    A tester :
    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
     
     
    Sub ATester()
     
    Dim ShResults As Worksheet
    Dim MonAireDeDonnees As Range
    Dim MonGraphique As Chart
     
        Set ShResults = Sheets("Results")
     
        With ShResults
             Set MonAireDeDonnees = .Range("K11:L12")
             .Shapes.AddChart.Select
             Set MonGraphique = ActiveChart
             With MonGraphique
                 .HasTitle = True
                 .ChartTitle.Characters.Text = "Répartition des pertes électriques "
                 .ChartType = xlPie
                 .SetSourceData Source:=MonAireDeDonnees
             End With
     
        End With
     
        Set MonAireDeDonnees = Nothing
        Set ShResults = Nothing
        Set MonGraphique = Nothing
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2017
    Messages : 38
    Par défaut
    Bonjour Eric et merci beaucoup pour ta réponse !
    Le programme trace bien le graphe escompté mais il oublie une partie des données présentes en K9 et L9.
    J'ai essayé de les rajouter à l'aide ton programme en modifiant la ligne

    Set MonAireDeDonnees = .Range("K11:L12") par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set MonAireDeDonnees = .Range("K9:L9", "K11:L12")
    Problème en l'écrivant comme ca le graphe ajoute aussi les cellules K10 et L10 ce que je ne souhaite pas

    Pourrais tu m'aider stp ?
    Merci infiniment

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par supengalere Voir le message
    Bonjour,

    Le problème est que j'ai travaillé à l'aveuglette....

    Le plus simple serait de mettre un vidage d'écran de ce que tu veux faire et un fichier de données avec tes explications.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2017
    Messages : 38
    Par défaut
    Biensur je comprends je mets ca tout de suite !Nom : Capture.PNG
Affichages : 611
Taille : 5,1 Ko
    la premiere cellule est en K9 et la dernière en L13

    j'aimerais obtenir le graphe suivant :

    Nom : Capture2.PNG
Affichages : 640
Taille : 9,6 Ko

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par supengalere Voir le message
    A tester :
    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
     
     Sub CreatioDuGraphiqueDesPertes()
     
    Dim ShResults As Worksheet
    Dim MonAireDeDonnees As Range
    Dim MonGraphique As Chart
     
        Set ShResults = Sheets("Results")
        With ShResults
             Set MonAireDeDonnees = .Range("K9:L9, K11:L11, K12:L12")
             .Shapes.AddChart.Select
             Set MonGraphique = ActiveChart
             With MonGraphique
                 .HasTitle = True
                 .ChartTitle.Characters.Text = "Répartition des pertes électriques "
                 .ChartType = xlPie
                 .SetSourceData Source:=MonAireDeDonnees
     
                 .SetElement (msoElementDataLabelCenter)
                 .ApplyDataLabels
                 .SeriesCollection(1).DataLabels.ShowPercentage = True
     
                 .ChartStyle = 38
                 .ClearToMatchStyle
     
             End With
     
        End With
     
        Set MonAireDeDonnees = Nothing
        Set ShResults = Nothing
        Set MonGraphique = Nothing
     
    End Sub
    Sinon pour ton info, j'ai bossé dans ton domaine côté ERDF. Le logo de mon site rappelle cette époque. Tes pertes sur ton réseau intérieur sont ridicules... J'ai vu jusqu'à 210 kW à P*max sur le réseau distribution...

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

Discussions similaires

  1. [XL-2013] Moyenne et tracé de courbe VBA
    Par paul1004 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2017, 16h38
  2. tracé de courbe vba
    Par supengalere dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/06/2017, 11h27
  3. [XL-2007] Histogramme et camembert - VBA
    Par gaston64 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/11/2011, 21h16
  4. Tracé graphique sur fichier excel depuis vba access
    Par kdestine dans le forum VBA Access
    Réponses: 0
    Dernier message: 26/09/2007, 12h37
  5. [VBA-E] Tracé de flèche entre cellules
    Par truman dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/04/2006, 09h48

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