XL 2010 création graphique avec variable sur 2 colonnes

jojo2006

XLDnaute Occasionnel
bonjour à tous,

je souhaiterai connaitre la syntaxe pour paramétrer en vba en automatique la création de graphique.

la syntaxe en enregistrement de création de graphique est ci dessous


dans cette formule je souhaite passer les colonnes A et B en variable integer i et j.

Merci d'avance pour votre aide.

VB:
Sub testgraph()
'
' testgraph Macro
'
    Columns("A:B").Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
    ActiveChart.SetSourceData Source:=Range("data!$A:$B")

End Sub
 

BrunoM45

XLDnaute Barbatruc
Bonjour jojo2006
Peut-être comme ça ;)
VB:
Sub testgraph()
    Dim Col1 as String, Col2 as String
'
' testgraph Macro
'
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
    Col1 = "$A":Col2="$B"
    ActiveChart.SetSourceData Source:=Range("data!" & Col1 & ":" & Col2)
End Sub
A+
 
Dernière édition:

jojo2006

XLDnaute Occasionnel
Bonjour BrunoM45

Merci mais je préférerai passer par des variables integer et non avec des chaines de caractère.
 

job75

XLDnaute Barbatruc
Bonsoir jojo2006, Bruno,

Si vous voulez vos données X et Y dans des colonnes disjointes entrez-les en colonnes B et D et lancez cette macro :
VB:
Sub testgraph()
Dim i As Integer, j As Integer
i = 2 'colonne B, à adapter
j = 4 'colonne D, à adapter
Union(Columns(i), Columns(j)).Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SetSourceData Source:=Union(Sheets("data").Columns(i), Sheets("data").Columns(j))
End Sub
A+
 

job75

XLDnaute Barbatruc
Bonjour jojo2006, Bruno, le forum,

Avec une macro un peu plus propre :
VB:
Sub testgraph()
Dim i As Integer, j As Integer
i = 2 'colonne B, à adapter
j = 4 'colonne D, à adapter
With Sheets("data")
    .Activate
    .Shapes.AddChart.Select
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
    ActiveChart.SetSourceData Source:=Union(.Columns(i), .Columns(j))
    ActiveCell.Activate
End With
End Sub
Bonne journée.
 

Discussions similaires


Haut Bas