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![]()
Partager