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éation simultanée de deux graphiques


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
    Chargé d'affaire
    Inscrit en
    Mars 2023
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2023
    Messages : 13
    Par défaut Création simultanée de deux graphiques
    Bonjour les developpez,

    Je cherche un code VBA qui puisse produire les deux graphiques en même temps.
    avec un compteur "i"

    Merci d'avance,

    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
    ' Graphe 1'
     
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlAreaStacked
        ActiveChart.SetSourceData Source:=Range("'Détails Rang2'!$JM$4:$TN$4")
        ActiveChart.SeriesCollection(1).XValues = "='Détails Rang2'!$JO$3:$TN$3"
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Accueil"
     
        Dim a As Chart
     
        Set a = ActiveChart
        a.ChartArea.Height = 420
        a.ChartArea.Width = 760
        a.ChartArea.Left = 380
        a.ChartArea.Top = 10
     
    ' Graphe 2 '
     
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlAreaStacked
        ActiveChart.SetSourceData Source:=Range("'Détails Rang2'!$JM$5:$TN$5")
        ActiveChart.SeriesCollection(1).XValues = "='Détails Rang2'!$JO$3:$TN$3"
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Accueil"
     
        Dim a As Chart
     
        Set a = ActiveChart
        a.ChartArea.Height = 420
        a.ChartArea.Width = 760
        a.ChartArea.Left = 380
        a.ChartArea.Top = 440

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 508
    Par défaut
    Salut,

    En clair tu veux factoriser.

    On peut faire ceci par exemple:
    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
    39
    40
    Option Explicit
     
    Type GraphData
        Source As String
        XValues As String
        Left As Integer
        Top As Integer
    End Type
     
    Public Sub CreateGraphs(ByVal Sheet As Excel.Worksheet, ByRef ChartData() As GraphData)
        Dim i As Integer
        For i = LBound(Data) To UBound(Data)
            Dim Chart As Excel.Chart
            Set Chart = Sheet.Shapes.AddChart
     
            Chart.ChartType = xlAreaStacked
            Chart.SetSourceData Source:=Range(ChartData(i).Source)
            Chart.SeriesCollection(1).XValues = ChartData(i).XValues
            Chart.Location Where:=xlLocationAsObject, Name:="Accueil"
            Chart.ChartArea.Height = 420
            Chart.ChartArea.Width = 760
            Chart.ChartArea.Left = ChartData(i).Left
            Chart.ChartArea.Top = ChartData(i).Top
        Next
    End Sub
     
    Sub test()
        Dim ChartData(0 To 1) As GraphData
        ChartData(0).Source = "'Détails Rang2'!$JM$4:$TN$4"
        ChartData(0).XValues = "='Détails Rang2'!$JO$3:$TN$3"
        ChartData(0).Top = 10
        ChartData(0).Left = 380
     
        ChartData(0).Source = "'Détails Rang2'!$JM$5:$TN$5"
        ChartData(0).XValues = "='Détails Rang2'!$JO$3:$TN$3"
        ChartData(0).Top = 440
        ChartData(0).Left = 380
     
        CreateGraphs ActiveSheet, ChartData
    End Sub
    PS: Je ne suis pas convaincu de l'intérêt de passer par un tableau.

Discussions similaires

  1. [Swing] Création d'une interface graphique SWING + MVC
    Par Sylmandel dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/04/2006, 09h03
  2. [Conception] Inscription simultanée sur deux sites différents
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 20/04/2006, 10h28
  3. problème de création d'un état graphique
    Par bigounet dans le forum Access
    Réponses: 4
    Dernier message: 10/04/2006, 20h23
  4. création de deux graphiques à la fois
    Par Makino dans le forum Tkinter
    Réponses: 2
    Dernier message: 06/03/2006, 16h48
  5. affichage simultané de deux graphiques en Gnuplot
    Par Makino dans le forum Tkinter
    Réponses: 2
    Dernier message: 01/03/2006, 09h56

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