Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA Données sources d'un graphiques et variables

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Matt51100

XLDnaute Occasionnel
Bonjour le forum,

Mon aujourd'hui est le suivant :

j'ai un graphique dans lequel je veux pouvoir faire varier les données sources à partir d'une macro.

J'ai fait ceci :

Code:
ActiveSheet.ChartObjects("Graphique 5").Activate
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection(1).Values = "=BACTERIO!R" & deb & "C4:R" & fin & "C"

deb et fin sont des variables que l'utilisateur renseigne, elles sont déclarés en integer.

Dans ce cas la macro génère une erreur 1004.

Merci d'avance.

A+, Matt.
 
Re : VBA Données sources d'un graphiques et variables

Bonjour Matt, bojour le forum,

n'ayant pas trop manipuler les graphiques avec les macros,

"=BACTERIO!R" & deb & "C4:R" & fin & "C" doit faire réference à une plage de cellule non ?

donc si par exemple je dit que deb =5 et fin =25 ta référence donne
"=BACTERIO!R5C4:R25C" la reference ne devrais pas plutot etre du style "=BACTERIO!C" & Deb & ":R" & fin
ce qui donnerais "=BACTERIO!C5:R25"
 
Re : VBA Données sources d'un graphiques et variables

Bonjour,

C'est cela mais cela ne marche pas.
Je viens d'essayer avec ceci :

Code:
ActiveChart.SeriesCollection(1).Values = Sheets("BACTERIO").Range("D" & deb & ":D" & fin)
[\CODE]

Cela ne marche pas non plus.

A+, Matt
 
Re : VBA Données sources d'un graphiques et variables

Salut,

J'ai pu réduire le fichier assez pour le faire passer sur le forum.

En appuyant sur le bouton, un USF apaprait et demande les numéros de ligne pour définir la plage de cellules des données sources. Après tout est dans le code.

A+, Matt.
 

Pièces jointes

Re : VBA Données sources d'un graphiques et variables

Re,

les textbox renvoyant une valeur de type "string", essaye peut être ceci :
Code:
Dim fin As Integer
Dim deb As Integer
deb = CInt(TextBox2.Value)
fin = CInt(TextBox1.Value)

bon après midi
@+
 
Re : VBA Données sources d'un graphiques et variables

Re,

fonctionne jusqu'à là :
Code:
Private Sub CommandButton1_Click()
Dim fin As Integer
Dim deb As Integer
deb = CInt(TextBox2.Value)
fin = CInt(TextBox1.Value)
Dim a As Variant
a = "=BACTERIO!R" & deb & "C4:R" & fin & "C4"
'On Error Resume Next

ActiveSheet.ChartObjects("Graphique 5").Activate
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection(1).Values = Sheets("BACTERIO").Range("D" & deb & ":D" & fin)
ActiveChart.SeriesCollection(2).Values = "=BACTERIO!R" & deb & "C5:R" & fin & "C5"
ActiveChart.SeriesCollection(3).Values = "=BACTERIO!R" & deb & "C6:R" & fin & "C6"

avec valeur 5 et 15, mais je ne comprends pas vraiment ton graph, alors....
 
Re : VBA Données sources d'un graphiques et variables

Salut,

Chez moi ça ne marche pas.

Pour ce qui est de comprendre le graph c'est la représentation de valeur qui sont 90% du temps égale à 0 mais qui peuvent être de temps en temps différente de 0 (en fonction des jours). J'automatise le truc pour que l'utilisateur puisse se le représenter de mois en mois.
Moi on me demande de réprésenter ça graphiquement, alors j'exécute...
Même si je n'en pense pas moins.

A+, Matt
 
Re : VBA Données sources d'un graphiques et variables

Bonjour le fil,
Je préfère repartir d'un graphique à blanc
Code:
Private Sub CommandButton1_Click()
Dim cht As ChartObject, i%
deb = CInt(TextBox2)
fin = CInt(TextBox1)
Application.ScreenUpdating = False
With ActiveSheet
    Set cht = .ChartObjects(1)
    With cht.Chart
        .ChartType = xlColumnClustered
        For i = .SeriesCollection.Count To 1 Step -1
            .SeriesCollection(i).Delete
        Next
        For i = 1 To 12
            .SeriesCollection.NewSeries
            .SeriesCollection(i).Name = ActiveSheet.Cells(4, i + 3)
            .SeriesCollection(i).XValues = ActiveSheet.Range(ActiveSheet.Cells(deb, 3), ActiveSheet.Cells(fin, 3))
            .SeriesCollection(i).Values = ActiveSheet.Range(ActiveSheet.Cells(deb, i + 3), ActiveSheet.Cells(fin, i + 3))
        Next
        .ChartType = xlLineMarkers
    End With
End With
End Sub
Encore faut-il contrôler la validité des donnees dans les textbox...
A+
kjin
 
Re : VBA Données sources d'un graphiques et variables

Bonjour,

Effectivement cela marche quand on crée le graphique à partir de rien.
Je vais faire comme ça, merci.

Pour Pierrot : j'ai réduit le nombre de série pour pouvoir poster le fichier.

A+, Matt.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…