Pb Code VB Graphique
Johnbi51
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Johnbi51 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Johnbi51 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Pb Code VB Graphique
- Code ascii - Guide
- Changer carte graphique - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide