Partage
  • Partager sur Facebook
  • Partager sur Twitter

Sélectionner données graphique VBA

automatiser la sélection des données

    5 juillet 2019 à 13:41:22

    Bonjour,

    Je cherche à sélectionner automatiquement les données d'un graphique, afin que lors d'ajout de lignes dans mon tableau, une nouvelle série soit créée dans le graphique (tracer E,F et G en fonction de B,C et D pour chaque ligne "non vide" à partir de la ligne 2).
    J'ai pour cela écrit une macro, mais qui ne fonctionne pas. Elle bloque à la ligne d'attribution de la plage de donnée des abscisses.

     Sub boucle_while()
        
         ActiveSheet.Shapes.AddChart2(240, xlXYScatterLines).Select
        
         Dim rang, i As Integer
         rang = 2
         i = 1
     
         While Cells(rang, 1) <> ""
         ActiveChart.SeriesCollection.NewSeries
         ActiveChart.FullSeriesCollection(i).Name = Cells(rang, 1)
         ActiveChart.FullSeriesCollection(i).XValues = range("B1;C1;D1").Offset(rowOffset:=i, columnOffset:=0)
         ActiveChart.FullSeriesCollection(i).Values = range("E1;F1;G1").Offset(rowOffset:=i, columnOffset:=0)
         rang = rang + 1
         i = i + 1

         Wend
         ActiveChart.SetElement (msoElementLegendRight)
     End Sub

    Si vous avez une idée de modifications que je pourrais apporter à la macro, ça serait avec plaisir.

    Merci et bonne journée

    • Partager sur Facebook
    • Partager sur Twitter
      8 juillet 2019 à 11:06:14

      Salut,

      J'ai jamais vu cette utilisation de Range avec des ";", c'est sensé donner quoi ?

      • Partager sur Facebook
      • Partager sur Twitter
        16 juillet 2019 à 16:49:55

        Bonjour,

        Pour tes ranges, essaie plutot ca :

        range("B1;C1;D1") => Range("B1:D1")
        
        range("E1;F1;G1") => Range("E1:G1")

        Il faut comprendre que le : va prendre en compte tout ce qui est entre la première cellule et la seconde cellule. tu peux prendre plusieurs plage différentes séparé par ,

        Exemple : 

        Range("E1:H1,E7:H7").Select 

        L'exemple va prendre les Cellules suivantes : de E1 à H1 (donc E1, F1, G1, H1) ET de E7 à H7 (donc E7, F7, G7, H7)

        Et essaie de colorer ton code grâce à la balise code et au langage VB ;)

        J'espère que j'ai pu t'aider.


        Cordialement,

        -
        Edité par lindadu01 16 juillet 2019 à 16:51:31

        • Partager sur Facebook
        • Partager sur Twitter

        Parfois, arrêter 5 minutes son développement permet de mieux repartir face à un problème ;)

        Sélectionner données graphique VBA

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown