OVH Cloud OVH Cloud

contrôles graphiques

3 réponses
Avatar
Greffier
bonjour,

1 - Existe-t-il dans Excel ou ailleurs un contrôle supplémentaire pour créer
des graphiques dans un userform.

2 - L'enregistrement automatique d'une macro pour créer un graphique marche
bien, mais lorsque j'efface le contenu de la feuille, le graphique obtenu
n'a plus les mêmes dimensions en hauteur et largeur, et parfois même une
exécution supplémentaire n'affiche plus les données des axes. pourquoi.

Pour toutes vos suggestions sur ces 2 points , je vous remercie.

cordialement,

greffier.

3 réponses

Avatar
anonymousA
Bonjour,

1- oui, le controle ChartSpace dans les controles supplémentaires. PAs
si facile de s'en servir après et peut-être pas forcément utile sachant
qu'il y d'autres solutions pour afficher un graphique sur un UF en
utilisant la technique des graphiques classique sous Excel.

2-Je ne comprends pas la question.Précises ce que tu veux et ce que tu
constates

A+

bonjour,

1 - Existe-t-il dans Excel ou ailleurs un contrôle supplémentaire pour créer
des graphiques dans un userform.

2 - L'enregistrement automatique d'une macro pour créer un graphique marche
bien, mais lorsque j'efface le contenu de la feuille, le graphique obtenu
n'a plus les mêmes dimensions en hauteur et largeur, et parfois même une
exécution supplémentaire n'affiche plus les données des axes. pourquoi.

Pour toutes vos suggestions sur ces 2 points , je vous remercie.

cordialement,

greffier.




Avatar
Greffier
Bonsoir,

2 - L'enregistrement automatique d'une macro pour créer un graphique marche
bien, mais lorsque j'efface le contenu de la feuille, le graphique obtenu
n'a plus les mêmes dimensions en hauteur et largeur, et parfois même une
exécution supplémentaire n'affiche plus les données des axes. pourquoi.

Le problème est simple. Si je réexécute le macro, le graphe ne se positionne
pas à l'endroit prévu, ni même dans la grandeur à laquelle j'ai abouti avec
la macro, pas plus que les données qui pourtant si j'agrandi le graphe sont
bien positionnées dans les données source.
Il doit sûrement ajouter manuellement d'autres instructions.

Amicalement,

Greffier.




"anonymousA" a écrit dans le message de
news:439f1b43$0$18320$
Bonjour,

1- oui, le controle ChartSpace dans les controles supplémentaires. PAs
si facile de s'en servir après et peut-être pas forcément utile sachant
qu'il y d'autres solutions pour afficher un graphique sur un UF en
utilisant la technique des graphiques classique sous Excel.

2-Je ne comprends pas la question.Précises ce que tu veux et ce que tu
constates

A+

bonjour,

1 - Existe-t-il dans Excel ou ailleurs un contrôle supplémentaire pour
créer


des graphiques dans un userform.

2 - L'enregistrement automatique d'une macro pour créer un graphique
marche


bien, mais lorsque j'efface le contenu de la feuille, le graphique
obtenu


n'a plus les mêmes dimensions en hauteur et largeur, et parfois même une
exécution supplémentaire n'affiche plus les données des axes. pourquoi.

Pour toutes vos suggestions sur ces 2 points , je vous remercie.

cordialement,

greffier.






Avatar
anonymousA
envoie ton fichier su cjoint et donne moi l'addresse. J'y jetterai un
coup d'oeil demain. Ceci dit, il est assez simple d'ajouter un grpahique
et de le travailler.

Ci-dessous, un exemple complet d'une procédure appelée par une autre
proc et qui crée un grpahique et en travaille quelques propriétés

Public Sub creategraph(plageXval, plageYval, plageleg, nIndex)

'dans cette procédure, plageXval représente représentant les
abscisses,plageYval
'représentant les ordonnées, plageleg le nom de la série,Nindex le point
dans la
'série donc son N° d'index dans celle-ci qui devra être mis en lumière
par rapport aux autres.

Dim ws As Worksheet, c As Range, ch As ChartObject, chson As Chart, s As
Series

Application.ScreenUpdating = False

'déclaration des lieux de réception du graphique

Set ws = ActiveSheet
Set c = ActiveCell

'insertion du graphique et déclaration nom graphique

Set ch = ws.ChartObjects.Add(c.Left, c.Top, 600, 300) 'les déclarations
'left, top, width et height sont obligatoires
ch.Name = "Graphtemp" ' nom du graphique

'déclaration du graphique en tant que tel

Set chson = ch.Chart

'déclaration des sources du graphique. A employer si on ne fait pas
appel dans la procédure
'à des sources venant d'ailleurs

'Set plageX = plageXval 'Range(Cells(2, 1), Cells(2, 22)) ' la source
pour l'axe des abscisses
'Set plageY = plageYval 'Range(Cells(3, 1), Cells(3, 22)) ' la source
pour l'axe des ordonnées
'Set plagelegende = plageleg 'Cells(1, 1) 'la source pour la légende du
graphique

'création d'une série de données

Set s = chson.SeriesCollection.NewSeries

'affectation des données à la série créée

With s

.XValues = plageXval 'la référence à la source pour l'axe des
abscisses. On passe ici directement les éléments (affectation à un obejt
range)
.Values = plageYval ' la référence à la source pour l'axe des ordonnées
.Name = plageleg ' la référence à la source pour la légende

End With

With chson 'avec l'objet chart de ChartObject

.Legend.Clear 'effacement de la légende ' ou .Position =
xlLegendPositionBottom 'position de la légende

With .ChartTitle 'avec le titre du graphique

If plageXval.Parent.Name = "TOTO" Then
textetitre = "TOTO Cout par client en € pour le compte "
Else
textetitre = "TATA Cout par client en € pour le compte "
End If

.Text = textetitre & plageleg & " : le 4eme de la famille est
en rouge" 'définition du texte du titre pour le graphique
.Font.Bold = True ' le titre en gras

With .Characters(Start:=InStr(1, chson.ChartTitle.Text, ":", 1)
+ 1, Length:5).Font 'on met en police rouge le texte "le 4eme de la
famille est en rouge"
.ColorIndex = 3
End With

End With

For i = 1 To 11 'ici il n'et evidemment pas nécessaire de faire 11
fois l'affichage des étiquettes et la police de celles-ci. Cette
structure a seulement été laissée pour
'permettre de ne pas casser le end with
de SeriesCollection(1)

With .SeriesCollection(1) 'avec la série 1 de Chart

If i <> nIndex Then
.Points(i).Interior.ColorIndex = 9 'les points qui ne
sont pas à mettre en évidence sont en bleu
Else
.Points(i).Interior.ColorIndex = 3 'le point à mettre
en évidence est en rouge
End If

.ApplyDataLabels Type:=xlDataLabelsShowValue 'affichage
des valeurs de la série

With .DataLabels 'avec les étiquettes de la série
With .Font ' avec la police des étiquettes
.FontStyle = "Gras" 'mettre en gras
.Size = 8 'mettre en police taille 8
End With
End With

End With

Next

.PlotArea.ClearFormats 'avec la zone de graphique effacer l'arrière
plan grisé

With .Axes(xlValue) 'avec l'axe des X
.MajorGridlines.Delete 'enlever le quadrillage principal
With .TickLabels.Font 'avec les étiquettes de l'axe des X
.FontStyle = "Gras"
.Size = 8
End With
End With

With .Axes(xlCategory) ' avec l'axe des Y
With .TickLabels.Font 'avec les étiquettes de l'axe des Y
.FontStyle = "Gras"
.Size = 8
End With
End With

With .ChartArea 'avec la zone de grahique
.Interior.ColorIndex = 0 'coloriage en blanc de la zone de
graphique
.Border.LineStyle = 0 'on enlève le contour du graphique
End With

End With


Application.ScreenUpdating = True


End Sub

A+

Bonsoir,

2 - L'enregistrement automatique d'une macro pour créer un graphique marche
bien, mais lorsque j'efface le contenu de la feuille, le graphique obtenu
n'a plus les mêmes dimensions en hauteur et largeur, et parfois même une
exécution supplémentaire n'affiche plus les données des axes. pourquoi.

Le problème est simple. Si je réexécute le macro, le graphe ne se positionne
pas à l'endroit prévu, ni même dans la grandeur à laquelle j'ai abouti avec
la macro, pas plus que les données qui pourtant si j'agrandi le graphe sont
bien positionnées dans les données source.
Il doit sûrement ajouter manuellement d'autres instructions.

Amicalement,

Greffier.




"anonymousA" a écrit dans le message de
news:439f1b43$0$18320$

Bonjour,

1- oui, le controle ChartSpace dans les controles supplémentaires. PAs
si facile de s'en servir après et peut-être pas forcément utile sachant
qu'il y d'autres solutions pour afficher un graphique sur un UF en
utilisant la technique des graphiques classique sous Excel.

2-Je ne comprends pas la question.Précises ce que tu veux et ce que tu
constates

A+


bonjour,

1 - Existe-t-il dans Excel ou ailleurs un contrôle supplémentaire pour



créer

des graphiques dans un userform.

2 - L'enregistrement automatique d'une macro pour créer un graphique



marche

bien, mais lorsque j'efface le contenu de la feuille, le graphique



obtenu

n'a plus les mêmes dimensions en hauteur et largeur, et parfois même une
exécution supplémentaire n'affiche plus les données des axes. pourquoi.

Pour toutes vos suggestions sur ces 2 points , je vous remercie.

cordialement,

greffier.