VBA Nuage de points
clemente91
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
clemente91 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
clemente91 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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
- Mettre des points sur une carte - Guide
- Comment insérer des points de suite sur word - Guide
- Score snap qui augmente de 3 points - Forum Snapchat
- Incompatibilité de type vba ✓ - Forum Programmation
- Snap help score - Forum Snapchat
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)