VBA Graphiques

VBA Graphiques - VB/VBA/VBS - Programmation

Marsh Posté le 06-08-2009 à 08:54:53    

Bonjour à tous,
 
Je commence à peine sous VBA et je suis en stage. J'aimerais créer un graphique qui se met à jour à chaque fois que j'ajoute des données sur ma base (date/performance).
 
Pourriez vous s'il vous plait m'aider :( ?
 
Merci

Reply

Marsh Posté le 06-08-2009 à 08:54:53   

Reply

Marsh Posté le 06-08-2009 à 09:10:40    

Si tu prends une zone de données plus grandes, le graphique se mettra à jour dès que tu ajouteras des valeurs dans cette zone. Je sais pas si ça te convient.

Reply

Marsh Posté le 06-08-2009 à 09:27:24    

Salut
J'ai jamais utilisé les graphique en vba mais si je crois que c'est lié au tcd non?
Et sauf erreur de ma part les tcd n'aime pas les lignes vide...
donc je conseillerais plutôt une macro qui réajusterait la zone de selection
Mais ca veut dire qu'il faut regarder du coté des événements excel regardé s'il existe un truc du genre onchange
 
 
Si ce n'est pas lié au tcd la solution de deamon est largement la plus simple tu prend une très très grande zone et pas de soucis et pas de prog non plus ^^


Message édité par _xme_ le 06-08-2009 à 09:27:44
Reply

Marsh Posté le 06-08-2009 à 09:53:45    

Je vous remercie Deamon et _xme_
 
En gros je n'aurai pas de vite vu que la base est toute nouvelle...  
et si je prends une plage trop grande (ne contenant pas d'infos) le graphique ne sera pas bon il me semble ...
 
Sauriez vous ou je peux trouver des exemples de procédures ?
Je n'arrive pas à coder ...
 
Merci !
 
ps: je ss pas du ds l'informatique :p

Reply

Marsh Posté le 06-08-2009 à 10:10:55    

Désolé de te décevoir mais va falloir penser à faire de l'info si tu veux que ça marche :p
Peux-tu en dire plus sur d'un ce qu'est ta base?
Est ce juste un ensemble de ligne excel ou carrément une base de données Access, Sql Server ect
Quel genre de graphique tu es censé faire?
Je ne me sers jamais des graphique excel du coup je suis un peu perdu ^^.
De mémoire y a au moins 2 type de graphiques, certain du genre tcd qui réagisse au choix des utilisateurs et d'autre statiques.
Donc qu'est ce que tu fais?

Reply

Marsh Posté le 06-08-2009 à 10:36:06    

En effet, je vais devoir me pencher sur la question!
 
Alors c'est une petite base sur Excel juste des dates et les performances donc c'est en deux colonnes. Pour le moment elle n'est pas trop longue (à peu près 20 lignes) mais avec le temps elle risque de s'agrandir. Voilà pourquoi j'aimerais éviter le sélectionner/insérer graphique...
 
Le graphique c'est donc une courbe qui en fonction du temps donne la performance.  
 
Ca doit être tout bête, pas de sql pas d'access on reste dans Excel.
 
Merci encore _xme_ :)
 

Reply

Marsh Posté le 06-08-2009 à 10:45:06    

Charlotte10 a écrit :

et si je prends une plage trop grande (ne contenant pas d'infos) le graphique ne sera pas bon il me semble ...


Je viens de tester si tu mets une grande zone de données il ne prend pas en compte les lignes qui sont vides. Donc ça devrait convenir et c'est beaucoup plus simple.
 

Charlotte10 a écrit :

Voilà pourquoi j'aimerais éviter le sélectionner/insérer graphique...


Tu peux modifier la source de données sans avoir à refaire un nouveau graphique.  ;)

Reply

Marsh Posté le 06-08-2009 à 11:44:52    

Ah c'est une bonne nouvelle alors !
Je te remercie Deamon.
 
Est ce possible d'ajouter des précisions type : graphique allant de 90 et non de 0 ??
 
Saurais tu ou je pourrais trouver des procédures écrites?? :s

Reply

Marsh Posté le 06-08-2009 à 11:47:47    

Tu double-cliques sur chaque axe pour modifier son échelle et compagnie.

Reply

Marsh Posté le 06-08-2009 à 11:49:31    

Bon si c'est juste une petite base excel, ça m'a pas bien l'air dur :)
Comme le dit deamon tu peux prendre une zone plus grand, je te le conseille aussi ca t'enlevera tout soucis très rapidement ;)
- soit tu cherches le sport et dans ce cas tu programmes un minimum
DAns ce cas:
Alors tout d'abord sache qu'excel est assez magique pour faire du vba :)
Pour savoir à quoi va ressembler ton script commence par aller dans outils->macro->nouvelle macro
A ce moment là tu fais exactement ce que tu aimerais que fasse ton script.
Plusieurs possibilités s'offrent à toi.
Supprimer le tableau et en réinsérer plus grand qui aient tout les données.
juste modifier la zone de selection (conseillé :D )
 
Une fois ceci fait, tu arretes l'enregistrement de la macro
perso je me suis amusé à créer un graphique voila le résultat:

Code :
  1. Sub Macro2()
  2.    Charts.Add
  3.    ActiveChart.ChartType = xlLineMarkers
  4.    ActiveChart.SetSourceData Source:=Sheets("Sheet1" ).Range("B2:C10" ), PlotBy _
  5.        :=xlColumns
  6.    ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
  7.    With ActiveChart
  8.        .HasTitle = True
  9.        .ChartTitle.Characters.Text = "titre"
  10.        .Axes(xlCategory, xlPrimary).HasTitle = True
  11.        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "axex"
  12.        .Axes(xlValue, xlPrimary).HasTitle = True
  13.        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "axey"
  14.    End With
  15. End Sub


Avec ça tu vois on voit par exemple directe comment créer un graphique, choisir la zone de selection, changer les titre des axes etc....
une fois ceci fait post ton code
 
Sinon fait directement la solution de deamon ca marche aussi :D
 
 
Edit: oups message hs car commencé il ya plus d'une heure mais interrompu car mon maitre de stage a débarqué :D


Message édité par _xme_ le 06-08-2009 à 11:50:23
Reply

Marsh Posté le 06-08-2009 à 11:49:31   

Reply

Marsh Posté le 06-08-2009 à 12:48:15    

Okay !
 
Merci les gars je comprends je suis aussi en stage
 
Comment ne pas avoir de text concernant les axes ? Je peux mettre hasAxisTitle=False ??
 
Pour avoir un format dates pour les abscisses on fait comment?
 
Merci ::))

Reply

Marsh Posté le 07-08-2009 à 12:01:47    

Bonjour
 
ahum _xme_ ... Bon je ne vais pas le faire sur tout tes posts.... :lol:
 
Charlotte10,
 

Code :
  1. 'Pour les dates
  2.     ActiveSheet.ChartObjects("TonGraphique" ).Activate
  3.     ActiveChart.Axes(xlCategory).Select
  4.     Selection.TickLabels.NumberFormat = "dd/mm/yyyy"


 
Pour ce qui est du texte sur les axes, j'ai pas compris la question... Car les titres des axes sont definissables quand tu créés le graphique, donc il suffit de ne rien mettre. Si tu en as mis :

Code :
  1. 'Suppression des titres des axes s'ils existent
  2.     If ActiveChart.Axes(xlCategory).HasTitle = True Then ActiveChart.Axes(xlCategory).AxisTitle.Delete
  3.     If ActiveChart.Axes(xlValue).HasTitle = True Then ActiveChart.Axes(xlValue).AxisTitle.Delete


 
Cordialement


Message édité par SuppotDeSaTante le 07-08-2009 à 12:03:45

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 07-08-2009 à 14:52:21    

ahum dje69r en fait vois-tu ... [:kurt haribo]
non là pour le coup j'ai aucune excuse valable, j'ai lamentablement perdu mon temps à ouvrir un excel et enregistrer une macro qui ne me servira à rien  :pfff:  
 
 :lol:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed