Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA - Graphique avec abscisses variants automatiquement

3 réponses
Avatar
akar.serkan
Bonjour =E0 tous,

Je vous explique tr=E8s vite fait mon probl=E8me.

J'effectue gr=E2ce =E0 une macro un solveur donnant des r=E9sultats sur
plusieurs lignes, selon diff=E9rents pourcentages appliqu=E9s pour un
produit.

Les pourcentages sont dans les cellules A16:A35 et les r=E9sultats en
B16:B35. Un graphique se cr=E9e automatiquement.

Le probl=E8me c'est qu'il arrive que selon la pertinence des r=E9sultats,
ma macro supprime automatiquement les lignes non int=E9ressantes. Et
donc je peux me retrouver avec les donn=E9es dans les cellules A16:A24
et B16:B24.

Et donc ce que cela engendre c'est que l'axe des abscisses (r=E9sultats
qui sont en forme de 4 chiffres apr=E8s la virgules) d=E9bute toujours =E0
0=2E L'id=E9al pour moi, c'est qu'il d=E9bute toujours =E0 la valeur
inf=E9rieure arrondie au dixi=E8me de la cellule B16
(=3Darrondi.inf(B16,1)).

Je ne sais vraiment pas comment faire et j'esp=E8re que j'ai bien s=FB
vous exposer mon probl=E8me.

Merci d'avance pour votre aide.


Point important: le graphique est cr=E9=E9 sur une nouvelle feuille nomm=E9e
GraphProduits

3 réponses

Avatar
Daniel
Bonjour.
A condition que le type de graphique soit un nuage de points, relié ou non
par une courbe :

ActiveSheet.ChartObjects(1).Activate
ActiveChart.Axes(xlCategory).MinimumScale = _
Int(Range("B16")) + (Int(Range("B16") * 10) Mod 10) / 10

Cordialement.
Daniel
a écrit dans le message de news:

Bonjour à tous,

Je vous explique très vite fait mon problème.

J'effectue grâce à une macro un solveur donnant des résultats sur
plusieurs lignes, selon différents pourcentages appliqués pour un
produit.

Les pourcentages sont dans les cellules A16:A35 et les résultats en
B16:B35. Un graphique se crée automatiquement.

Le problème c'est qu'il arrive que selon la pertinence des résultats,
ma macro supprime automatiquement les lignes non intéressantes. Et
donc je peux me retrouver avec les données dans les cellules A16:A24
et B16:B24.

Et donc ce que cela engendre c'est que l'axe des abscisses (résultats
qui sont en forme de 4 chiffres après la virgules) débute toujours à
0. L'idéal pour moi, c'est qu'il débute toujours à la valeur
inférieure arrondie au dixième de la cellule B16
(=arrondi.inf(B16,1)).

Je ne sais vraiment pas comment faire et j'espère que j'ai bien sû
vous exposer mon problème.

Merci d'avance pour votre aide.


Point important: le graphique est créé sur une nouvelle feuille nommée
GraphProduits
Avatar
akar.serkan
Merci tout d'abord pour la réponse..

Mais par contre je crois que ce code est pour un graphique situé sur
la même feuille que les données, ou je me trompes?

Mon graphique se créé sur une feuille graphique nommée
"GraphProduits".

Merci encore
Avatar
Daniel
En admettant que les données soient qur la feuille "Feuil1" :

With Sheets("Feuil1")
Sheets("GraphProduits").Select
ActiveChart.Axes(xlCategory).MinimumScale = _
Int(.Range("B16")) + (Int(.Range("B16") * 10) Mod 10) / 10
End With

Daniel
a écrit dans le message de news:

Merci tout d'abord pour la réponse..

Mais par contre je crois que ce code est pour un graphique situé sur
la même feuille que les données, ou je me trompes?

Mon graphique se créé sur une feuille graphique nommée
"GraphProduits".

Merci encore