Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2516 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA Excel : Echelles et légendes des axes des graphiques

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA Excel : Echelles et légendes des axes des graphiques

n°726868
AnAyalMake​r
Posté le 15-05-2004 à 15:51:15  profilanswer
 

Bonjour à tous !
 
Je suis débutant en VBA et en ce moment, j'essaie de construire une pyramide des âges en VBA à partir de données contenues dans une feuille Excel mais là je suis vraiment coincé.
 
Pour créer cette pyramide, j'ai fait un petit peu de bricolage avec 2 graphs en barres pour obtenir quelque chose qui y ressemblait.
 
J'ai transporté, dans une autre feuille (la "feuil3" (voir code ci dessous)), les données correspondant à mon second graph et je les ai rendues négatives.
J'obtiens bien au final (après ajustements des positions des graphs) quelque chose ressemblant à une pyramide des âges mais il reste des problèmes liés aux étiquettes des axes et aux échelles.
 
En effet, l'axe des ordonnées me donne, comme légende (et donc comme ensemble d'étiquettes), le numéro des lignes et moi, ce que je veux, ce sont les valeur d'une certaine plage de cellules (ce sont des âges compris entre 18 et 65 ans). Je n'utilise que 2 séries (2 catégories de population). J'ai pu rectifier cela avec les menus d'excel (mettre la plage en source de valeur de l'axe des ordonnées) mais je veux le faire en VBA pour que ce soit automatisé.
 
Je tiens à préciser que j'ai déja essayé une bidouille qui consiste à transporter les données sur les lignes n°18 à 65. Mais voila, la numérotation sur l'axe reste la même. La seule différence, c'est qu'avant 18 ans, il y 17 blancs. Si jamais je décidais de les retirer, alors je perdrais les quelques blancs situés entre 18 et 65.
 
 
Sinon, autre problème, étant donné qu'un des 2 graphs possède des valeurs négatives, les étiquettes sont à l'intérieur, donc elles chevauchent les barres. J'aimerais pouvoir les supprimer ou, à la limite, les mettre à l'extérieur (j'ai pu le faire avec les menus grâce à la fonction "L'axe des ordonnées(Y) coupe à l'abscisse maximale" ).
 
Dernier problème, je voudrais pouvoir modifier les échelles, pour 2 raisons. Tout d'abord, les 2 graphs en barre n'ont pas la même échelle (sur l'axe des abscisses) à cause des différences de valeurs, ce qui rend la pyramide incohérente.
Deuxièmement, j'aurais aimé, pour pouvoir faire des comparaisons, avoir la possibilité de modifier les échelles.
 
Pour vous aider à y voir plus clair, je vous passe un petit bout de mon code (celui pour la pyramide). Ca ne vaut pas grand chose vu que je ne suis pas doué en programmation mais bon j'espère que ça vous aidera.
 
Dim ch2 As ChartObject
Set ch2 = Worksheets("Feuil2" ).ChartObjects.Add(0, 0, 270, 700)
ch2.Chart.ChartWizard Source:=Worksheets("Feuil3" ).Range("B2:C49" ), _
gallery:=xlBar, PlotBy:=xlColumns
ch2.Chart.PlotArea.Width = 270
ch2.Chart.HasLegend = False
 
Dim ch As ChartObject
Set ch = Worksheets("Feuil2" ).ChartObjects.Add(258, 0, 270, 700)
ch.Chart.ChartWizard Source:=Worksheets("Feuil3" ).Range("E2:F49" ), _
gallery:=xlBar, PlotBy:=xlColumns
ch.Chart.SeriesCollection(1).Name = "Technicien"
ch.Chart.SeriesCollection(2).Name = "Cadre"
ch.Chart.PlotArea.Width = 270
 
La plage que je veux mettre en source de données est (A1;A49).
 
Voila, j'espère que quelqu'un pourra m'aider sur ces points, ça fait déja un sacré bout de temps que je cherche sur le net sans aucune réponse. J'ai même acheté un livre mais il n'y avait pas ce dont j'avais besoin.
 
Je suis actuellement en stage en entreprise, c'est pourquoi je dois effectuer cela en VBA. Dernière précision : j'utilise Office 97.
 
Ce serait vraiment génial si quelqu'un pouvait m'aider un peu ou me mettre sur la voie.

mood
Publicité
Posté le 15-05-2004 à 15:51:15  profilanswer
 

n°727238
Kanell
Posté le 16-05-2004 à 09:03:42  profilanswer
 

Salut,
 
Tu devrais essayer de refaire toutes tes manips en faisant une nouvelle macro pour chaque étape (en valeur absolue et relative). Tu pourras ensuite exploiter le code qu'Excel te générera et l'aménager à ta sauce.
 
 

n°727356
AnAyalMake​r
Posté le 16-05-2004 à 13:11:13  profilanswer
 

Merci pour ta réponse !  
Alors ça veut dire que Excel peut générer le code des manips que l'on fait à partir des menus ?
 
Tout ce que je voulais en fait c'est savoir comment on modifie les étiquettes des axes, voire les sources des étiquettes des axes, ainsi que les échelles.

n°727360
Kanell
Posté le 16-05-2004 à 13:26:15  profilanswer
 

AnAyalMaker a écrit :

Merci pour ta réponse !  
Alors ça veut dire que Excel peut générer le code des manips que l'on fait à partir des menus ?
 


 
--> Vi !
 
Pour savoir comment on modifie les étiquettes des axes, voire les sources des étiquettes des axes, ainsi que les échelles, fais une nouvelle macro et fais les manips sur ton graphe. Ca te donnera une base pour ton code que tu n'auras plus qu'à optimiser.

n°727452
AnAyalMake​r
Posté le 16-05-2004 à 15:21:14  profilanswer
 

Merci beaucoup ! Je vais faire comme ça !  
Tu es le premier qui ai pu me fournir un indice en 5 jours de recherches !
 
@++

n°727463
Kanell
Posté le 16-05-2004 à 16:05:53  profilanswer
 

Y a pas de quoi sauf que je suis une nénette !!
 

n°727540
AnAyalMake​r
Posté le 16-05-2004 à 19:28:19  profilanswer
 

Ah? Autant pour moi alors...
 
Si je réussi, je te demanderai peut-être en mariage !  :lol:  

n°727618
Kanell
Posté le 16-05-2004 à 21:33:10  profilanswer
 

Trop tard  :sol:

n°732711
AnAyalMake​r
Posté le 20-05-2004 à 13:45:19  profilanswer
 

Bon, je récris tard mais j'annonce que j'ai réussi grâce à toi Kanel !
 
Il reste juste un bug. L'axe des abscisses d'un de mes 2 graphs a des abscisses négatives. Mais je ne crois pas que l'on puisse y faire grand chose.
 
Merci encore !

n°733134
Kanell
Posté le 21-05-2004 à 09:14:25  profilanswer
 

Si! Tu peux les rendre "positives" visuellement en changeant le format de nombre des cellules :
    Selection.NumberFormat = "###0;###0;###0"
 
A plus
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA Excel : Echelles et légendes des axes des graphiques

 

Sujets relatifs
écrire dans un document excel[VB Excel] Faire une boucle correcte
[C#] Créer des graphiques, des camemberts ou autres histogrammesCréer une feuille Excel
[VBA] & [ACCESS] - Appeler une requete depuis un formulaire[VBA] problème et recherche de date avec Find...
Pb avec un Dlookup sous Access (VBA)Faire du tri dans Excel
excel et access ..??[VBA] marre des listes...
Plus de sujets relatifs à : VBA Excel : Echelles et légendes des axes des graphiques


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR