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 :

Choix de plage dynamique pour un graphique


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Choix de plage dynamique pour un graphique
    Bonjour, je souhaiterai sélectionner pour faire un graphe, des plages dynamiques, surtout pour rajouter une autre courbe sur mon graphe, mais j'y arrive pas. je veux démarrer ma deuxième courbe a partir de la cellule numéro "AC2"+ lag, et jusqu’à $AC$1947 + lag au lieu de "A2" et $AC$1947 respectivement , comment faire pour changer ça
    voici mon code, si vous avez des suggestions,
    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
    Sub Graphe2()
     
    Dim rgPlage As Range
     
    Set lag = Worksheets("FED MODEL").Range("S28")
     
    Set rgPlage = Range("U1:U1947,AA1:AA1947")
     
    moy = InputBox("Voullez vous tracer les primes de risques moyénées ? Tappez oui le cas échéant", Choix)
     
    Charts.Add
        With ActiveChart
        'définit le type de graphique
            .ChartType = xlLine
        'définit la plage source
            .SetSourceData Source:=rgPlage
     
        End With
     
     
        If moy = "oui" Then
     
        ActiveChart.ChartArea.Select
        ActiveChart.SeriesCollection.NewSeries
        ActiveChart.SeriesCollection(2).Name = "=""Primes_moyénées"""
        ActiveChart.SeriesCollection(2).Values = "='FED MODEL'!$AC$2:$AC$1947"
        ActiveChart.SeriesCollection(2).XValues = "='FED MODEL'!$U$2:$U$1947"
        End If
     
      End Sub
    merci d'avance

  2. #2
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    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
    Sub Graphe2()
    Dim Ch As Chart
    Dim rgPlage As Range, Lag As Range
    Dim LastLig As Long
    Dim Moy As Long
     
    Application.ScreenUpdating = False
     
    With ThisWorkbook.Worksheets("FED MODEL")
        LastLig = .Cells(.Rows.Count, "U").End(xlUp).Row
        Set Lag = .Range("S28")
        Set rgPlage = .Range("U1:U" & LastLig & ",AA1:AA" & LastLig)
    End With
     
    Moy = MsgBox("Voullez vous tracer les primes de risques moyénées?", vbYesNo + vbDefaultButton1)
     
    Set Ch = ThisWorkbook.Charts.Add
    With Ch
        .ChartType = xlLine
        .SetSourceData Source:=rgPlage
        If Moy = vbYes Then
            With .SeriesCollection.NewSeries
                .Name = "Primes_moyénées"
                .Values = "'FED MODEL'!$AC$2:$AC$" & LastLig
            End With
        End If
    End With
    Set Ch = Nothing
    Set rgPlage = Nothing
    Set Lag = Nothing
    End Sub

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup,

    ça marche parfaitement,

    vu que jusqu'au lag, c'est des zeros, y aurait-il un moyen, de commencer a tracer à partir de cette cellule seulement (directement de cette cellule) ?

  4. #4
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    Et qu'est ce que tu as en cellule S28? (Lag)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    justement, c'est le nombre de cellules où y a des zéros. Par ce que c'est une moyenne mobile, avec comme paramètre le lag.

  6. #6
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    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 Graphe2()
    Dim LastLig As Long, Lag As Long, Moy As Long
    Dim rgPlage As Range
    Dim Ch As Chart
     
    Application.ScreenUpdating = False
     
    With ThisWorkbook.Worksheets("FED MODEL")
        LastLig = .Cells(.Rows.Count, "U").End(xlUp).Row
        Lag = Val(.Range("S28"))
        Set rgPlage = .Range("U" & 1 + Lag & ":U" & LastLig & ",AA" & 1 + Lag & ":AA" & LastLig)
    End With
     
    Moy = MsgBox("Voullez vous tracer les primes de risques moyénées?", vbYesNo + vbDefaultButton1)
     
    Set Ch = ThisWorkbook.Charts.Add
    With Ch
        .ChartType = xlLine
        .SetSourceData Source:=rgPlage
        If Moy = vbYes Then
            With .SeriesCollection.NewSeries
                .Name = "Primes_moyénées"
                .Values = "'FED MODEL'!AC" & 2 + Lag & ":AC" & LastLig
            End With
        End If
    End With
    Set Ch = Nothing
    Set rgPlage = Nothing
    End Sub

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    merci beaucoup

    juste une question encore: si je veux que ça dessine QUE les primes moyennées à partir du lag comment je fais ?

  8. #8
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    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
    Sub Graphe3()
    Dim LastLig As Long, Lag As Long
    Dim rgPlage As Range
    Dim Ch As Chart
     
    Application.ScreenUpdating = False
     
    With ThisWorkbook.Worksheets("FED MODEL")
        LastLig = .Cells(.Rows.Count, "U").End(xlUp).Row
        Lag = Val(.Range("S28"))
        Set rgPlage = .Range("U" & 1 + Lag & ":U" & LastLig & ",AC" & 1 + Lag & ":AC" & LastLig)
    End With
     
    Set Ch = ThisWorkbook.Charts.Add
    With Ch
        .ChartType = xlLine
        .SetSourceData Source:=rgPlage
        .SeriesCollection(1).Name = "Primes_moyénées"
    End With
    Set Ch = Nothing
    Set rgPlage = Nothing
    End Sub

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    merci

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

Discussions similaires

  1. [XL-2007] Plage dynamique toute les X lignes pour graphique
    Par Pahcixam dans le forum Excel
    Réponses: 5
    Dernier message: 09/06/2015, 16h35
  2. choix de lib externe pour interface graphique windows
    Par gpcbitnik38 dans le forum C++
    Réponses: 2
    Dernier message: 12/07/2013, 17h36
  3. [XL-2010] Plage de donnée dynamique pour graphique
    Par moilou2 dans le forum Excel
    Réponses: 3
    Dernier message: 07/03/2013, 18h51
  4. Choix de langage pour interface graphique simple
    Par C_C dans le forum Langages de programmation
    Réponses: 9
    Dernier message: 04/04/2006, 20h12
  5. Problème de choix pour un graphique
    Par MeDioN dans le forum 2D
    Réponses: 2
    Dernier message: 10/10/2005, 10h11

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