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 :

Representation des graphes gérée par un macro VBA


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 1
    Par défaut Representation des graphes gérée par un macro VBA
    Bonjour
    je fais programme pour qui à partir de feuille 3 fais la representation graphique sur la feuille 1 dont voici le programme:
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    ' Code pour gerer le graphe des cours boursières
    Sub graphique()
     
     
    Dim graph1 As Charts
     
     Range("b", "b").Select
        'Range("B2", Range("B1").End(xlDown).Value).Select
     
        Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        Sheets("Feuil1").Select
        ActiveSheet.ChartObjects("graph1").Activate
        ActiveWindow.Visible = False
        Selection.Delete
        Charts.Add
        ActiveChart.ChartType = xl3DLine
     
        ActiveChart.SetSourceData Source:=Worksheets("Feuil3").Range(“B2”, Worksheets("feuil3").Range("B2").End(xlDown)), PlotBy _
            :=xlColumns
    ActiveChart.SeriesCollection(1).XValues = Worksheets("Feuil3").Range("A2", Worksheets("feuil3").Range("a2").End(xlDown))
     
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
        With ActiveChart
            .HasTitle = True
            .ChartTitle.Characters.Text = "Cours du jour"
            .Axes(xlCategory).HasTitle = False
            .Axes(xlSeries).HasTitle = False
            .Axes(xlValue).HasTitle = True
            .Axes(xlValue).AxisTitle.Characters.Text = "cours"
        End With
     
    End Sub
     
    ' Code pour gérer le graphe des voulumes boursiers échangés
    Sub graphique1()
     
    Dim graphVolum As Charts
     
       'Range("C2", Range("C1").End(xlDown).Value).Select
         Range("c", "c").Select
     
        Sheets("Feuil1").Select
        ActiveSheet.ChartObjects("graphVolum").Activate
        ActiveWindow.Visible = False
        Selection.Delete
        Charts.Add
        ActiveChart.ChartType = xl3DLine
        ActiveChart.SetSourceData Source:=Worksheets("Feuil3").Range("C2", Worksheets("feuil3").Range("C2").End(xlDown)), PlotBy _
            :=xlColumns
        ActiveChart.SeriesCollection(1).XValues = Worksheets("Feuil3").Range("A2", Worksheets("feuil3").Range("a2").End(xlDown))
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
        With ActiveChart
            .HasTitle = True
            .ChartTitle.Characters.Text = "Volumes échangés"
            .Axes(xlCategory).HasTitle = False
            .Axes(xlSeries).HasTitle = False
            .Axes(xlValue).HasTitle = True
            .Axes(xlValue).AxisTitle.Characters.Text = "Quantités"
        End With
    End Sub


    Mon souci c'est de ne pas avoir la date de début d'ouverture de la bourse à l'heure d'exécution sur l'axe des abscisse, il me le fait à l'envers (14h 13h 12h......9h au lieu d' avoir 9h 10h 11h ....14h)quelqu'un pourrait t-il m'aider s'il vous plait. Merci d'avance.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Insomnie oblige, et sans connaitre les valeurs de tes données, j'ai testé ton code (en le nettoyant au passage), l'axes reflète le même tri que ta colonne A
    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
    41
    42
    Public Sub Graphique()
    Dim plageB As Range, plageA As Range
    Dim LastLig As Integer, i As Integer
     
    Application.ScreenUpdating = False
    With Sheets("Feuil3")
       LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
       Set plageA = .Range("A2:A" & LastLig)
       Set plageB = .Range("B2:B" & LastLig)
    End With
    plageB.Replace ".", ",", xlPart
     
    'supprime tous les graphiques de Feuil1
    With Sheets("Feuil1").Shapes
       If .Count > 0 Then
          For i = .Count To 1 Step -1
             If .Item(i).Type = 3 Then .Item(i).Delete
          Next i
       End If
    End With
     
    Charts.Add.Name = "GRAPHE1"
    With ActiveChart
       .ChartType = xl3DLine
       .SetSourceData Source:=plageB, PlotBy:=xlColumns
       .SeriesCollection(1).XValues = plageA
       .Location Where:=xlLocationAsObject, Name:="Feuil1"
    End With
    '------------------------Fermer le With Activechart et réouvrir un nouveau (déplacement vers feuil1)
    With ActiveChart
       .HasTitle = True
       .ChartTitle.Text = "Cours du jour"
       .ChartTitle.Font.ColorIndex = 11
       .Axes(xlValue).HasTitle = True
       .Axes(xlValue).AxisTitle.Top = 20
       .Axes(xlValue).AxisTitle.Text = "Cours"
       .HasLegend = False
       .Deselect
    End With
    Set plageA = Nothing
    Set plageB = Nothing
    End Sub

Discussions similaires

  1. Mise en forme des fichiers générés par la macro
    Par soflab31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/03/2015, 12h11
  2. [XL-2010] Envoyer/recevoir des commandes via ethernet avec macro VBA
    Par Kyrios953 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/03/2015, 12h18
  3. [XL-2007] Lancement d'une application par une macro vba
    Par rijks dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/12/2014, 09h12
  4. Réponses: 1
    Dernier message: 17/09/2013, 05h10
  5. Réponses: 5
    Dernier message: 26/04/2011, 18h53

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