creation graphe nb courbe variable
Bonjour a tout le monde.
voila mon problème : je cherche à faire une macro qui permettrai de créé un tableau (XY).
le nombre de courbe pouvant atteindre plus de 60 et étant dans un classeur différent de la macro, j'ai fais une première userform ou il indique, le classeur, la feuil et le nombre de courbe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Public NbDeCourbe As Integer
Public CourbeActuelle As Integer
Public feuilC As String
Public ClasuerC As String
Private Sub CommandButton1_Click()
ClasuerC = TextBox2.Value
feuilC = TextBox3.Value
NbDeCourbe = Val(TextBox10.Value)
CourbeActuelle = 1
Unload UserForm1
UserForm2.Show
End Sub |
la deuxième userforme permet de mètre la plage de valeur des X, des Y et l'emplacement du nom de la courbe (en valident sa ajoute la courbe et prépare pour la suivante).
la fonction : trensforme, permet de transformé : A2:C3 en 1 2 3 4
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| Dim nomDeLaCelection As String
Private Sub CommandButton1_Click()
Dim PlageXC As String, PlageYC As String
Dim PlageXC1 As String, PlageYC1 As String
Dim NomCourbe As String
Dim reception
NomCourbe = TextBoxA.Value
PlageXC = TextBoxB.Value
PlageYC = TextBoxC.Value
If CourbeActuelle = 1 Then
Charts.Add
With ActiveChart
.ChartType = xlXYScatterLines
.SetSourceData Source:=Sheets(feuilC).Range(PlageXC1), PlotBy:=xlRows
.SeriesCollection(1).Delete
End With
nomDeLaCelection = ActiveChart.Name
End If
reception = trensforme(PlageXC)
CX11 = reception(1)
CX12 = reception(2)
LX11 = reception(3)
LX12 = reception(4)
reception = trensforme(PlageYC)
CY11 = reception(1)
CY12 = reception(2)
LY11 = reception(3)
LY12 = reception(4)
PlageYC1 = "=" & feuilC & "!R" & CY11 & "C" & LY11 & ":R" & CY12 & "C" & LY12
PlageXC1 = "=" & feuilC & "!R" & CX11 & "C" & LX11 & ":R" & CX12 & "C" & LX12
With ActiveChart
.SeriesCollection.NewSeries
.SeriesCollection(CourbeActuelle).XValues = PlageXC1
.SeriesCollection(CourbeActuelle).Values = PlageYC1
.SeriesCollection(CourbeActuelle).Name = "=""courbe"""
End With
If CourbeActuelle = NbDeCourbe Then
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "bubule"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "cx"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "cy"
End With
End If
If CourbeActuelle = NbDeCourbe Then
Unload UserForm2
UserForm1.Show
Else
CourbeActuelle = CourbeActuelle + 1
End If
End Sub |
mon gros problème est que je n'y connais rien en tableau sur excel est vu toute les manipulations que je fais, ActiveChart ne doit plus indiquer le tableau
(l'erreur apparait au niveau de : .SeriesCollection.NewSeries / sa me mais : variable non définie)
merci pour votre aide.