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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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