Graphique dynamique

Bonjour à tous,

Je souhaiterai créer dans une feuille de calcul Excel un graphique dynamique.

Je m'explique car je sais qu'il y a des tonnes de sujets là-dessus, mais rien de ce que j'ai lu ne m'a permis de résoudre mon problème.

Voilà, j'ai effectué un petit montage Arduino qui envoie sur la liaison série de mon ordinateur, le taux d'humidité dans l'air.

Ces données, j'arrive à les transcrire dans la feuille de calcul via une macro sous forme de colonne nommée "Humidité". Il y a également une autre colonne nommée "Heure" qui, à chaque donnée reçue indique l'heure du relevé à coté de la mesure de l'humidité.

J'effectue une mesure toutes les 30 secondes, vous comprendrez donc que les colonnes s'agrandissent assez vite ! Et en une nuit, ma feuille de calcul est déjà bien remplie.

C'est pourquoi, j'aimerai traduire ces données grâce à un graphique (humidité en fonction de l'heure). J'aimerai que ce graphique affiche l'évolution de l'humidité ambiante sur, par exemple, 1000 mesures. Et que les données antérieures n'apparaissent plus sur ce graphique.

J'ai essayé la fonction =DECALER(), mais ça ne marche vraiment pas.

Auriez-vous une idée afin que je puisse régler ce problème s'il vous plaît ?

De plus, je souhaiterai même effacer les données antérieures à la 1000ième mesures. Est-ce donc possible de supprimer automatiquement des données d'une feuille de calcul Excel ? Peut-être en passant par une macro, mais je ne sais pas comment faire, je l'avoue, je ne suis pas un pro des macros...

J’espère vraiment avoir expliquer mon problème clairement. Je reste, bien entendu, à votre entière disposition si vous avez la moindre question à me poser !

Cordialement,

Nicolas

Bonjour,

Une piste :

Sub ZoneGraph()

    Dim Fe As Worksheet
    Dim Obj As ChartObject
    Dim Graph As Chart
    Dim Lig As Long

    Set Fe = Worksheets("Feuil1")
    Set Obj = Fe.ChartObjects(1)
    Set Graph = Obj.Chart

    'recherche la dernière ligne non vide
    With Fe: Lig = .Cells(.Rows.Count, 1).End(xlUp).Row: End With

    'déplace le graphique vers le bas afin d'éviter sa suppression
    Obj.Top = Fe.Range("A" & Lig - 995).Top

    'si plus de mille, supprime les lignes inutiles en début de feuille à partir de la ligne 2 (ligne 1 = entêtes)
    If Lig > 1001 Then Fe.Rows("2:" & Lig - 1000).EntireRow.Delete

    'les valeurs à prendre en compte pour le graphique sont en "A2:B1001"
    Graph.SetSourceData Fe.Range("A2:B1001")

End Sub

Comme tu entres tes valeurs dans le tableau à l'aide d'une macro (ajoutées en fin de tableau je suppose), il te suffit d'appeler la procédure "ZoneGraph()" à la fin de ta procédure :

Sub MaMacro()

    'ici tes lignes de code important les valeurs qui sont, je suppose ajoutées en fin de tableau
    '...
    '...
    '...

    'appel de la procédure ZoneGraph() pour supprimer les lignes inutiles et redéfinir la zone du graphique
    ZoneGraph

End Sub

Bonjour Theze,

Merci beaucoup de ta réactivité et de ta réponse.

J'ai essayé de mettre en place ce que tu m'as dit, mais j'ai encore un problème.

Alors, tout d'abord, une capture de ma page Excel :

1

Comme tu peux le voir, on voit apparaître la macro que j'ai trouvée sur internet :

La feuille 1 ne s'appelle pas "Feuil1", donc dans le code que tu m'as donné, j'ai changé en "Simple Data"

Ensuite, Excel détecte une erreur à la ligne suivante :

2

Je ne comprend pas cette erreur, pourrais-tu m'éclairer s'il te plaît ?

Cordialement,

Nicolas

Bonjour,

Il faut que ton graphique existe et soit posé sur la feuille.

Rechercher des sujets similaires à "graphique dynamique"