Pb Code VB Graphique

Fermé
Johnbi51 Messages postés 3 Date d'inscription jeudi 23 juillet 2009 Statut Membre Dernière intervention 3 août 2009 - 23 juil. 2009 à 23:07
Johnbi51 Messages postés 3 Date d'inscription jeudi 23 juillet 2009 Statut Membre Dernière intervention 3 août 2009 - 3 août 2009 à 09:15
Bonjour, voila jai créé un code mais une erreur se trouve au niveau de la variable X. Etant débutant je ne trouve pas la solution. Si vous pouvez m'aidez ca me serait très utile. Et si vous avez des recommandations pour l'améliorer merci d'avance pour votre gentilesse.
Tout ce trouve dans UseForm1

Voici le code :

Public Sub TraceCourbe()
UserForm1.Show
End Sub

Option Explicit

Private Plage As Range


Private Sub UserForm_Initialize()
Dim Feuille As Worksheet, cmpt As Long
Dim I As Integer
Dim c As Range


Set Feuille = ThisWorkbook.Worksheets(1)
Set Plage = Feuille.UsedRange
'Précise que plusieurs éléments peuvent être séléctionné dans la listbox
Me.ListBox1.MultiSelect = fmMultiSelectMulti
'Précise que les éléments sont dans une liste déroulante à un choix
Me.ComboBox1.Style = fmStyleDropDownList

'Commande pour ajouter des éléments dans la liste
For cmpt = 2 To Plage.Columns.Count
Me.ListBox1.AddItem Plage.Cells(cmpt).Value
Next cmpt
'Commande pour ajouter des éléments dans la liste déroulante sans les doublons
For Each c In ThisWorkbook.Sheets("Feuil1").Range("A:A")
Me.ComboBox1.AddItem c.Value
Next

End Sub
'Commande au bouton 2 "Annuler" de ne pas lancer la création du graphique
Private Sub CommandButton2_Click()
Unload Me
End Sub


'Commande au bouton 1 "Créer" de réaliser le graphique en fonction des listes et du titre
Private Sub CommandButton1_Click()
'Renseigne a VBA les dimensions et plage pour le graphique
Dim Graphe As Chart, compteur As Long
Dim PlageX As Range, PlageY As Range, MaSerie As Series

'Création de variables afin de facilité la lecture du code
For compteur = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(compteur) Then
If Graphe Is Nothing Then
Set Graphe = ThisWorkbook.Charts.Add
Graphe.ChartArea.Clear
'Définit le type de graphique : peut être modifié
Graphe.ChartType = xlCylinderBarStacked
End If
'Définit la liste déroulante en tant qu'axe des abscisses sur le graphique
Set PlageY = Plage.Columns(Me.ComboBox1.ListIndex)
'Définit la zone de liste en tant qu'axe des ordonnées sur le graphique
Set PlageX = Plage.Columns(compteur + 1)
Set MaSerie = Graphe.SeriesCollection.NewSeries
With MaSerie
.Values = PlageY
.XValues = PlageX
End With
End If
Next compteur
'Permet à la zone de texte de figurer en tant que titre du graphique
If Not Graphe Is Nothing Then
If Len(Me.TextBox1.Text) > 0 Then
Graphe.HasTitle = True
Graphe.ChartTitle.Characters.Text = Me.TextBox1.Text
End If
End If
Me.Hide

End Sub


Merci encore
A voir également:

1 réponse

Johnbi51 Messages postés 3 Date d'inscription jeudi 23 juillet 2009 Statut Membre Dernière intervention 3 août 2009
3 août 2009 à 09:15
personne peu m'aider???
0