toutou2base
XLDnaute Nouveau
J'ai pas mal cherché mais rien à faire...
je souhaite creer des courbes de façon auto (via macro) à partir d'un fichier multicolonnes.
La 1ere colonne sera toujours l'axe des x.
les autres colonnes sont des colonnes Y (des voies de mesure par exemple).
je souhaite donc creer 1 graphique par couple (1ere colonne, nième colonne Y), chaque graphique étant sur une feuille spécifique.
Si j'ai 6 colonnes, j'aurais donc au final 7 feuilles excel, la première contenant les données à tracer.
En fait, je n'arrive pas à combiner boucle for...next avec un balayage de la selection en cours:
Sub MultiXY()
Dim rngDataSource As Range
Dim iDataRowsCt As Long
Dim iDataColsCt As Integer
Dim iSrsIx As Integer
Dim chtChart As Chart
Dim srsNew As Series
Dim Nom_courbe As String
If Not TypeName(Selection) = 'Range' Then
'' Doesn't work if no range is selected
MsgBox 'Please select a data range and try again.', _
vbExclamation, 'No Range Selected'
Else
Set rngDataSource = Selection
With rngDataSource
iDataRowsCt = .Rows.Count
iDataColsCt = .Columns.Count
End With
'' Create the charts
For iSrsIx = 1 To iDataColsCt - 1
Charts.Add
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
Nom_courbe = 'Graph_' & iSrsIx
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=Nom_courbe
Set srsNew = ActiveChart.SeriesCollection.NewSeries
With srsNew
.Name = 'toto' & iSrsIx
.XValues = rngDataSource.Cells(1, 1) _
.Resize(iDataRowsCt, 1)
.Values = rngDataSource.Cells(iSrsIx + 1, 1) _
.Resize(iDataRowsCt, 1)
End With
Next
End If
End Sub
PS: ce source n'est pas de moi mais est dans le dompub.
Merci pour le coup de pouce en corrigeant (ou proposant auter chose).
Toutou
je souhaite creer des courbes de façon auto (via macro) à partir d'un fichier multicolonnes.
La 1ere colonne sera toujours l'axe des x.
les autres colonnes sont des colonnes Y (des voies de mesure par exemple).
je souhaite donc creer 1 graphique par couple (1ere colonne, nième colonne Y), chaque graphique étant sur une feuille spécifique.
Si j'ai 6 colonnes, j'aurais donc au final 7 feuilles excel, la première contenant les données à tracer.
En fait, je n'arrive pas à combiner boucle for...next avec un balayage de la selection en cours:
Sub MultiXY()
Dim rngDataSource As Range
Dim iDataRowsCt As Long
Dim iDataColsCt As Integer
Dim iSrsIx As Integer
Dim chtChart As Chart
Dim srsNew As Series
Dim Nom_courbe As String
If Not TypeName(Selection) = 'Range' Then
'' Doesn't work if no range is selected
MsgBox 'Please select a data range and try again.', _
vbExclamation, 'No Range Selected'
Else
Set rngDataSource = Selection
With rngDataSource
iDataRowsCt = .Rows.Count
iDataColsCt = .Columns.Count
End With
'' Create the charts
For iSrsIx = 1 To iDataColsCt - 1
Charts.Add
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
Nom_courbe = 'Graph_' & iSrsIx
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=Nom_courbe
Set srsNew = ActiveChart.SeriesCollection.NewSeries
With srsNew
.Name = 'toto' & iSrsIx
.XValues = rngDataSource.Cells(1, 1) _
.Resize(iDataRowsCt, 1)
.Values = rngDataSource.Cells(iSrsIx + 1, 1) _
.Resize(iDataRowsCt, 1)
End With
Next
End If
End Sub
PS: ce source n'est pas de moi mais est dans le dompub.
Merci pour le coup de pouce en corrigeant (ou proposant auter chose).
Toutou