problème de création d'un graphique
Bonjour,
J'essaye de générer un graphique à l'aide d'un userform, mais celui-ci se plante jamais au même endroit :(
Un peu d'aide, merci
voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
Private Sub UserForm_Initialize()
Dim PlageDonnees As Range, cmpt As Long, MaFeuille As Worksheet
Dim ligne As Long, ncol As Integer, nomfichier As String
'récupération nom du fichier excel actif
nomfichier = ActiveWorkbook.Name
'permet de faire reference a la feuille sans avoir a tout taper
Set MaFeuille = Workbooks(nomfichier).Worksheets("Feuil1")
'detection nombre lignes & colonnes
ncol = MaFeuille.Cells(13, "F").End(xlToRight).Column
ligne = MaFeuille.Cells(Rows.Count, "F").End(xlUp).Row
Set PlageDonnees = MaFeuille.Range("F13", MaFeuille.Cells(ligne, ncol))
Me.ComboBox3.Style = fmStyleDropDownList
Me.ComboBox5.Style = fmStyleDropDownList
Me.ListBox1.MultiSelect = fmMultiSelectMulti
'rempli les zones de la liste avec les noms des series
For cmpt = 1 To PlageDonnees.Columns.Count
Me.ComboBox3.AddItem PlageDonnees.Cells(cmpt).Value
Me.ComboBox5.AddItem PlageDonnees.Cells(cmpt).Value
Me.ListBox1.AddItem PlageDonnees.Cells(cmpt).Value
Next cmpt
'bloque la zone d'option tant que chekbox1 n'est pas cochée
Me.Frame1.Enabled = False
End Sub |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
Private Sub CommandButton2_Click()
'gère le bouton tracer
Dim MonGraphe As Chart, MaSerie As Series, compteur As Long, nomfichier As String
Dim PlageX As Range, PlageY As Range, MaFeuille As Worksheet, PlageDonnees As Range
Application.ScreenUpdating = False
For compteur = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(compteur) Then
If MonGraphe Is Nothing Then
Set MonGraphe = ThisWorkbook.Charts.Add
'MaFeuille.ChartObjects.Add(100, 100, 500, 350).Chart
MonGraphe.ChartArea.Clear
MonGraphe.ChartType = xlXYScatterSmoothNoMarkers
End If
Set PlageX = PlageDonnees.Columns(Me.ComboBox1.ListIndex + 1)
Set PlageY = PlageDonnees.Columns(compteur + 1)
Set MaSerie = MonGraphe.SeriesCollection.NewSeries
With MaSerie
.Values = PlageY
.XValues = PlageX
End With
End If
Next compteur
If Not MonGraphe Is Nothing Then
If Len(Me.TextBox1.Text) > 0 Then
MonGraphe.HasTitle = True
MonGraphe.ChartTitle.Characters.Text = Range("g6")
End If
MonGraphe.HasLegend = Me.CheckBox1.Value
End If
End Sub |
Tremens ;)