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 Sub

Bonjour h2so4,

Déjà merci pour l'aide mais cela ne fonctionne pas.

Cela me renvoie l'erreur 1004. Ci-joint, le message d'erreur complet.

capturer

re-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 Sub

Re,

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

Rechercher des sujets similaires à "graphique mis jour automatique"