Graphique mis à jour en automatique
Bonjour à tous,
Je viens vers vous car je rencontre un petit soucis avec un codage VBA qui bug.
En fait, je possède un fichier Excel, dont les donnée svont se emttre à jour de façon automatisée avec les colonnes qui se rempliront automatiquement (grâce à un logiciel interne). Sur ce même fichier Excel, j'ai différentes courbes dont j'aimerai que les valeurs et les axes se mettent à jour automatiquement aussi en fonction des données issues de l'autres feuille (Données).
Actuellement, j'ai réussi à ce que le code mette l'axe des abscisses automatiquement à jour, mais cela ne marche pas pour les données. Voici donc le code que j'utilise :
Sub MajCourbes()
Dim col As Integer, Cel
Dim debut As Date, fin As Date
col = Sheets("Données").Range("B1:IL1").Find(What:="", LookIn:=xlValues).Column - 1
debut = Sheets("Données").Range("C1").Value
fin = Sheets("Données").Cells(1, col).Value
Graph2.Activate
With ActiveChart
.SeriesCollection(1).XValues = "='Données'!$B$1:" & Cells(1, col)
.SeriesCollection(1).Values = "='Données'!$B$2:" & Cells(2, col)
.SeriesCollection(2).XValues = Sheets("Données").Range("B1", Cells(1, col))
.SeriesCollection(2).Values = Sheets("Données").Range("B3", Cells(3, col))
.Axes(xlCategory).MinimumScale = debut
.Axes(xlCategory).MaximumScale = fin
End With
End Sub(J'ai testé deux façons de faire le code mais il semble qu'aucune des deux ne fonctionnent. Des idées ?
Je vous remercie.
bonjour,
essaie ainsi
Sub MajCourbes()
Dim col As Integer, Cel
Dim debut As Date, fin As Date
col = Sheets("Données").Range("B1:IL1").Find(What:="", LookIn:=xlValues).Column - 1
debut = Sheets("Données").Range("C1").Value
fin = Sheets("Données").Cells(1, col).Value
Graph2.Activate
With ActiveChart
.SeriesCollection(1).XValues = Sheets("Données").Range("B1", Cells(1, col))
.SeriesCollection(1).Values = Sheets("Données").Range("B2", Cells(2, col))
.SeriesCollection(2).XValues = Sheets("Données").Range("B1", Cells(1, col))
.SeriesCollection(2).Values = Sheets("Données").Range("B3", Cells(3, col))
.Axes(xlCategory).MinimumScale = debut
.Axes(xlCategory).MaximumScale = fin
End With
End Subre-bonjour,
il me semblait pourtant avoir testé.
Sub MajCourbes()
Dim col As Integer, Cel
Dim debut As Date, fin As Date
col = Sheets("Données").Range("B1:IL1").Find(What:="", LookIn:=xlValues).Column - 1
debut = Sheets("Données").Range("C1").Value
fin = Sheets("Données").Cells(1, col).Value
Graph2.Activate
With ActiveChart
.SeriesCollection(1).XValues = Sheets("Données").Range("B1", Sheets("Données").Cells(1, col))
.SeriesCollection(1).Values = Sheets("Données").Range("B2", Sheets("Données").Cells(2, col))
.SeriesCollection(2).XValues = Sheets("Données").Range("B1", Sheets("Données").Cells(1, col))
.SeriesCollection(2).Values = Sheets("Données").Range("B3", Sheets("Données").Cells(3, col))
.Axes(xlCategory).MinimumScale = debut
.Axes(xlCategory).MaximumScale = fin
End With
End SubRe,
De mon côté j'ai directement tester sur le vrai fichier (beaucoup plus lourd et complet) et ça ne fonctionnait pas.
Mais maintenant tout est ok.
Merci beaucoup pour ta rapidité. Dommage que je n'ai pas moi-même pensé à ajouter le "Sheets".
Bonne soirée
