Graphique avec plage données variables

Bonsoir à tous,

Utilisateur débutant d'excel et dans le cadre de mes études,j'ai besoin d'aide en ce qui concerne une macro en VBA

Je m'explique : Chaque jour je viens rajouter 3 nouvelles lignes à ma feuille de calcul à l'aide d'un formulaire useform. Je souhaite pouvoir mettre sous formes de graphiques ( courbes) par exemple les 10 dernieres lignes.

Actuellement, j'ai réussi à obtenir mon graphe mais je ne sais pas comment faire pour qu'il utilise les 10 dernières lignes à partir de la dernière ligne enfin ça ne fonctionne pas...

Je sais qu'on peut utiliser ceci : dernière_ligne = Worksheets("DATA").Range("A65536").End(xlUp).Row + 1

Sur mon fichier joint, pour obtenir le graphe je sélectionne juste les cellules souhaitées alors que je veux que ça se fasse automatiquement...

Merci de votre aide

35vba-graphe.xlsm (112.79 Ko)

Bonsoir,

Hum... je te donne juste la partie qui t'intéresse :

    Dim chGraph        As Chart
    Dim PlageAccueil   As Range
    Dim PlageSource    As Range
    Dim iLRG% '=LastRowGraph as Integer
    Dim iFRG% '=FirstRowGraph as Integer
        iLRG = Worksheets("DATA").Range("E65536").End(xlUp).Rows
        iFRG = ligne_graphe - 9
        Z = "E" & iFRG & ":E" & iLRG

    With Worksheets("DATA")
      Set PlageSource = .Range(Z)
      ' Plage devant accueillir le graphique
      Set PlageAccueil = .Range("P4:AB34").Offset(0, 1)
      ' Création du graphique, ne pas oublier le .Chart final
      ' L'objet graphique se place sur la plage et à sa taille
      Set chGraph = .ChartObjects.Add(PlageAccueil.Left, PlageAccueil.Top, PlageAccueil.Width, PlageAccueil.Height).Chart
    End With

Non vérifié (pas eu le courage...)

Je t'ai fait une page source d'une seule colonne :

 Z = "E" & iFRG & ":E" & iLRG

Si tu veux plusieurs colonnes il faudra modifier par

 Z = "A" & iFRG & ":E" & iLRG 'par exemple...

Remarque : Il est communément admis que les Dim se place en début de macro... Je les ai laissé ou tu les a mis pour que tu te repères plus facilement mais n'en abuse pas hein !

A+

Merci de ton aide

Pour le coup je viens de tester mais ça ne fonctionne pas. En relisant mon message je crois ne pas avoir bien expliquer ce que je "souhaitais"...

Dans un premier temps, je veux récupérer les 10 dernières lignes de la colonne E et les tracer suivant une courbe sur mon graphe

Dans un second temps, je voudrais avoir en abscisse la date voir le créneau horaire (mais ça ce n'est pas la priorité).

Pour ce qui est du code, le terme Z correspond à une variable dont tu te sert ?

Pour l'erreur quand je lance ma macro, l'erreur intervient toujours au niveau : Set PlageSource = .Range(Z)

Merci de votre aide car je vois pas trop comment faire

Quelqu'un a une idée ?

L'erreur intervient toujours à la même ligne : Set PlageSource = .Range(Z) problème de syntaxe ?

Merci

Place voire un :

 Dim Z$ 

ou (c'est la même chose) :

 Dim Z as String

au tout début de ta Sub.

A+

Je viens d'essayer ça ne fonctionne pas.

Quand je lance ma macro l'erreur apparaît toujours à la même ligne, ça me met " erreur d'éxecution1004, erreur définie par l'application ou par l'objet".

Si quelqu'un sait pourquoi, merci de votre aide

Je suis désolé de redemander mais je vais en voir besoin et ça ne marche pas... Si jamais quelqu'un a une idée ?

Up J'ai toujours besoin d'aide ...

Désolé d'insister mais c'est important pour la suite de mes études. merci de votre aide

Bonjour,

Inutile d'insister ton sujet est mort car tu n'apportes rien à la compréhension.

On ne sait pas ou tu en es dans ta macro.

On ne sait pas comment tester.

De plus des réponses du type ça ne marche pas c'est pas des réponses...

Moi quand je teste j'ai un erreur 13 si ça peut te consoler...

Tu nous refourni un fichier au stade ou tu en es. Avec un code nettoyé, des Dim ou il faut et pas de lignes vides...

Tu nous fourni une image de la manière de remplir le USF pour obtenir un résultat probant. (car on est pas devins. On n'a aucune idée de ce qu'il faut mettre dedans.

Bref tu nous mets dans des conditions réelles pour tester. Sinon on perd notre temps...

A+

Salut,

désolé c'est vrai que j'aurai pu remettre mon fichier, j'avais remis les dim au bon endroit mais vu que j'avais pas trop avancé alors je l'avais pas remis désolé...j'avais essayé de changer le code mais le message apparaissait toujours...

Mon useform me permet juste d'incrémenter une nouvelle ligne et à partir de ces lignes je veux tracer mon graphe. Dans mon useform je rentre des temps ainsi que quelques infos ( nom de la personne, une case à cocher et des remarques si besoin.

Le problème vient toujours à la même ligne : Set Plage_Source = .Range(Z). le message apparaît lorsque je valide mon useform. je pensais dans un premier temps que ca venait d'un problème de définition de variable...

Ce que je veux c'est tracer par exemple les 10 dernières lignes de la colonne E et également, avoir une droite horizontale qui représentera l'objectif à atteindre.

Je joint mon document, le graph est tout à droite.

Merci et désolé pour le petit désagrément.

A+

18test-data.xlsm (126.30 Ko)
Rechercher des sujets similaires à "graphique plage donnees variables"