VBA Nuage de points
clemente91
Messages postés
2
Statut
Membre
-
clemente91 Messages postés 2 Statut Membre -
clemente91 Messages postés 2 Statut Membre -
Bonjour,
J'aurai besoin d'aide pour peaufiner mon code. J'ai un tableau avec trois colonnes (A,B,C) et 20 lignes, et un bouton qui génère les tableaux lorsque les lignes sont colorés.
C'est avec le nuage de points que je rencontre des problèmes, il part du principe qu'il n'y a qu'une seule série alors que j'aimerai que chaque ligne soit distincte et qu'il y ait un point qui correspond à chaque noms.
La question est donc comment je peux lui indiquer de créer plusieurs séries et intégrant la colonne A comme noms de la série, colonne B (données ici) en axe Y et Age en axe X?
Ci-dessous mon code :
Je vous remercie par avance pour votre aide.
bien cordialement,
EDIT: Ajout de la coloration syntaxique.
J'aurai besoin d'aide pour peaufiner mon code. J'ai un tableau avec trois colonnes (A,B,C) et 20 lignes, et un bouton qui génère les tableaux lorsque les lignes sont colorés.
C'est avec le nuage de points que je rencontre des problèmes, il part du principe qu'il n'y a qu'une seule série alors que j'aimerai que chaque ligne soit distincte et qu'il y ait un point qui correspond à chaque noms.
La question est donc comment je peux lui indiquer de créer plusieurs séries et intégrant la colonne A comme noms de la série, colonne B (données ici) en axe Y et Age en axe X?
Ci-dessous mon code :
Dim Donnees() As Single
Dim Noms() As String
Dim Age() As Single
For i = 6 To 26
ThisWorkbook.Worksheets("Tableaux").Activate
If ThisWorkbook.Worksheets("Tableaux").Cells(i, 1).Interior.Color <> RGB(255, 255, 255) Then
ReDim Preserve Noms(i - 5)
Noms(i - 5) = ThisWorkbook.Worksheets("Tableaux").Cells(i, 1).Value
If Table.OptionButton1.Value = True Then
ReDim Preserve Donnees(i - 5)
ReDim Preserve Age(i - 5)
Donnees(i - 5) = ThisWorkbook.Worksheets("Tableaux").Cells(i, 1).Offset(0, 2)
Age(i - 5) = ThisWorkbook.Worksheets("Tableaux").Cells(i, 1).Offset(0, 1)
End If
End If
Next i
Dim Chartobj As ChartObject
If Table.OptionButton1.Value = True Then
Set Chartobj = ActiveSheet.ChartObjects.Add(Left:=20, Width:=300, Top:=20, Height:=200)
Chartobj.Chart.ChartType = xlXYScatter
With Chartobj.Chart.SeriesCollection.NewSeries
.XValues = Donnees()
.Values = Age()
End With
End If
Je vous remercie par avance pour votre aide.
bien cordialement,
EDIT: Ajout de la coloration syntaxique.
A voir également:
- VBA Nuage de points
- Comment insérer des points de suite sur word - Guide
- Mettre des points sur une carte - Guide
- Score snap qui augmente de 3 points - Forum Snapchat
- Incompatibilité de type vba ✓ - Forum Programmation
- Réalisez le graphique xy (nuage de points ou dispersion), avec les x en abscisse. ✓ - Forum Excel
2 réponses
Bonjour, un moyen de savoir ou aller avec VBA est d'utiliser l'outil "Enregistrer Une Macra", tu fais "à la main" ce que tu veux faire par le code et Excel transcrit ça en VBA.
Voila ce que ça donne pour 3 séries:
Penser aux balises de coloration syntaxique: bouton <>, préciser le langage :<code csharp>.
Quand la solution est trouvée, mettre la discussion Résolue.
Voila ce que ça donne pour 3 séries:
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatter
ActiveChart.ChartStyle = 2
ActiveChart.ClearToMatchStyle
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "=Feuil1!$A$1:$A$11"
ActiveChart.SeriesCollection(1).Values = "=Feuil1!$B$1:$B$11"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).XValues = "=Feuil1!$A$1:$A$11"
ActiveChart.SeriesCollection(2).Values = "=Feuil1!$C$1:$C$11"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).XValues = "=Feuil1!$D$1:$D$11"
ActiveChart.SeriesCollection(3).Values = "=Feuil1!$D$1:$D$11"
ActiveChart.SeriesCollection(3).XValues = "=Feuil1!$A$1:$A$11"
End Sub
Penser aux balises de coloration syntaxique: bouton <>, préciser le langage :<code csharp>.
Quand la solution est trouvée, mettre la discussion Résolue.
Le souci est qu'il y a un nombre x de série.
Je teste ce code mais cela ne fonctionne pas :
Je teste ce code mais cela ne fonctionne pas :
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(i - 5).XValues = ThisWorkbook.Worksheets("Tableaux").Cells(i, 1).Offset(0, 4)
ActiveChart.SeriesCollection(i - 5).Values = ThisWorkbook.Worksheets("Tableaux").Cells(i, 1).Offset(0, 2)