RS8
Messages postés100Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention15 juillet 2009
-
18 mai 2007 à 11:12
RS8
Messages postés100Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention15 juillet 2009
-
21 mai 2007 à 10:35
Bonjour,
je programme sous visual basic 6 et je désire créer un graphique sous excel !
Grâce à vb 6 je crée un tableau et ensuite avec les valeurs du tableau je crée un graphique! Jusque là aucun problème !
Mais ensuite je désire placer mon graphique juste en dessous de mon tableau car je veux en inserer plusieurs et les positionner de manière bien spécifique!
J'ai donc fait une macro sous excel mais lorsque je l'insère dans mon programme et l'exécute cela ne fonctionne pas !
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Couple bloqué"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "abs"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ib (A)"
End With
With ActiveChart.Axes(xlCategory)
.HasMajorGridlines = False
.HasMinorGridlines = False
End With
With ActiveChart.Axes(xlValue)
.HasMajorGridlines = True
.HasMinorGridlines = False
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlBottom
ActiveSheet.ChartObjects("Tableau").Activate
ActiveSheet.Shapes("Tableau").IncrementLeft -173.25
ActiveSheet.Shapes("Graphiques").IncrementTop 128.25
ActiveSheet.Shapes("Graphique 11").ScaleWidth 0.85, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Graphique 11").ScaleHeight 0.59, msoFalse,_
msoScaleFromTopLeft
ActiveSheet.Shapes("Graphique 11").ScaleHeight 1.13, msoFalse, _
msoScaleFromBottomRight
ActiveSheet.Shapes("Graphiques").IncrementLeft -0.75
ActiveSheet.Shapes("Graphiques").IncrementTop -15.75
ActiveChart.Shapes.AddLine(29.25, 21.75, 387#, 24#).Select
Selection.ShapeRange.Flip msoFlipVertical
Selection.ShapeRange.Line.Weight = 1.5
Selection.ShapeRange.Line.Visible = True
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.ForeColor.SchemeColor = 10
Selection.ShapeRange.Line.Visible = msoTrue
ActiveChart.SeriesCollection(2).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlNone
End With
With Selection
.MarkerBackgroundColorIndex = xlAutomatic
.MarkerForegroundColorIndex = xlAutomatic
.MarkerStyle = xlCircle
.Smooth = False
.MarkerSize = 4
.Shadow = False
End With
ActiveChart.SeriesCollection(1).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlNone
End With
With Selection
.MarkerBackgroundColorIndex = xlAutomatic
.MarkerForegroundColorIndex = xlAutomatic
.MarkerStyle = xlCircle
.Smooth = False
.MarkerSize = 4
.Shadow = False
End With
Mais il ne compile pas et me dit "erreur de compilation, variable non définie en parlant de msoFalse, msoFlip, msoLine ou msoTrue".
Pourquoi ?
J'ai cherché sur le net mais j'ai rien trouvé!
De plus lorsque je mets toutes ces lignes en commentaire, il ne compile toujours pas et le message d'erreur ce coup là est "impossible de lire la propriétéChartObjects de la classeWorksheet" en parlant de la ligne "ActiveSheet.ChartObjects("Tableau").Activate"
Je ne sais pas qu'est ce que je dois mettre à la place de Tableau !
Alors si quelqu'un pouvait me dire ce que je dois faire ou me donner une autre solution !
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 18 mai 2007 à 11:26
Salut,
Quand tu as ce genre de message, et bien c'est que tes variables : msoFalse, msoFlip, msoLine ou msoTrue, ne sont pas déclarées dans ton projet, soit via Dim, Set....Donc tu ne peut pas leur attribuée une "valeur", si elles n'existent pas...C'est cela prouve que tu as mis : Option Explicit
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 18 mai 2007 à 11:45
Salut,
Essaye avec cela :
Dim MsoTrue As Boolean
Dim MsoFalse as Boolean
Par contre je ne suis pas sûr pour les deux suivantes :
Dim MsoLine as Single
Dim MsoFlip as Single
Par contre il y a un truc que je pige pas : Tu dis j'ai fait une macro, et tu ne sais pas comment et de quel type déclarer tes variables ?
A+
Exploreur
RS8
Messages postés100Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention15 juillet 2009 18 mai 2007 à 11:50
Non je suis allé sous excel j'ai fait une macro (pendant l'enregistrment j'ai creer le graphique comme je voulais puis deplacer à un endroit précis) de manière à avoir le code de toute la création mais le problème c'est que vb ne compile pas le code de la macro !
RS8
Messages postés100Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention15 juillet 2009 18 mai 2007 à 11:54
J'ai mis ce que tu m'as dis et il ne m'embète plus sur les définitions de variable.
Maintenant c'est le second problème que j'ai exposé qui me gène!
Que dois-je mettre dans "ActiveSheet.ChartObjects("Tableau").Activate" puisqu'apparemment c'est "Tableau" qu'il n'aime pas!
RS8
Messages postés100Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention15 juillet 2009 18 mai 2007 à 12:55
Je voudrais bien savoir pourquoi il me dit "Impossible de lire la propriété ChartObjects de la classe Worksheet"!
La feuille où est mon tableau et où je veux insérer mon graphique se nomme Tableau il est donc logique que je mette "ActiveSheet.ChartObjects("Tableau").Activate" ?
RS8
Messages postés100Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention15 juillet 2009 18 mai 2007 à 13:11
Si quelqu'un connait, pourrait-il m'expliquer ces quelques lignes de code pour que je puisse essayer de résoudre ce problème car je ne comprends pas la moitié de ce que j'ai copié (surtout les mso) !
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 20161 18 mai 2007 à 14:15
Bonjour
J'arrive après la bataille (repas oblige) mais pour qu'il n'y ait pas de problème de compilation tant pour les données mso... que pour les objets CharObjects,.... , j'ai vu globalement la discussion, il faut peut être référencer Excel en VB6 Projets/Références ou en VBA Outils/Références.