Discussion: Graphe en VBA
Afficher un message
Vieux 19/02/2006, 07h54   #2 (permalink)
MichelXld
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 855
Par défaut Re:Graphe en VBA

bonjour

j'espere que cet exemple pourra t'aider

tu te places sur chaque feuille contenant un tableau puis tu lances la procedure

il te restera à l'adapter pour ton projet , nottament pour eventuellement boucler sur les 10 feuilles


Sub creerGraphiqueFeuille()
Dim i As Byte
Dim j As Integer, Debut As Integer, Fin As Integer
Dim Plage As Range, Plage2 As Range
Dim nomFeuille As String

nomFeuille = ActiveSheet.Name

'Range('B27') pour un tableau potentiel de 31 jours
Fin = Sheets(ActiveSheet.Name).Range('B27').End(xlUp).Ro w
Debut = Sheets(ActiveSheet.Name).Cells(Fin, 2).End(xlUp).Row

Set Plage = ActiveSheet.Range('A' & Debut & ':A' & Fin)

Application.ScreenUpdating = False
Charts.Add
ActiveChart.Location Where:=xlLocationAsObject, Name:=nomFeuille

For i = 0 To 6 'nombre de séries dans le graphique

ActiveChart.SeriesCollection.NewSeries
Set Plage2 = _
Sheets(nomFeuille).Range(Sheets(nomFeuille).Cells( Debut, i + 2).Address & ':' & _
Sheets(nomFeuille).Cells(Fin, i + 2).Address)

ActiveChart.SeriesCollection(i + 1).Values = Plage2
If i = 0 Then ActiveChart.SeriesCollection(i + 1).XValues = Plage
ActiveChart.SeriesCollection(i + 1).Name = Sheets(nomFeuille).Cells(3, i + 2) 'nom de la courbe
ActiveChart.SeriesCollection(i + 1).Border.ColorIndex = i + 4
ActiveChart.ChartType = xlLine
Next i

ActiveChart.Axes(xlCategory).TickLabels.Orientatio n = xlUpward
ActiveChart.Axes(xlValue).HasMajorGridlines = False

Application.ScreenUpdating = True
End Sub



bonne journée
MichelXld

Message édité par: michelxld, à: 19/02/2006 06:55
MichelXld est déconnecté   Réponse avec citation