Graphique avec barre de défilement

E

Eric

Guest
Bonjour
Je ne sais pas réaliser un graphique avec une barre de défilement pour pouvoir étudier des courbes individuellement
Les données sont en colonnes
'J5-J145' pour les heures en abscisse
et jusque 'IV5-IV145 pour les données à etudier en ordonnées

Merci d'avance pour votre aide
Eric
 
E

Eric

Guest
Merci bien Michel

La pièce jointe 'ChoixGraphiqueEtPeriode' devrait faire l'affaire
Mais la plage de données va de la colonne A à G
Et je ne trouve pas ces colonnes mentionnées dans la macro pour les changer
Excuse mon ignorance, mais comment modifier cette plage de donné...
de la colonne M à IV par exemple

Encore merci
Eric [file name=ChoixGraphiqueEtPeriode_20060108100242.zip size=42018]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ChoixGraphiqueEtPeriode_20060108100242.zip[/file]
 

Pièces jointes

  • ChoixGraphiqueEtPeriode_20060108100242.zip
    41 KB · Affichages: 69

MichelXld

XLDnaute Barbatruc
rebonjour

si tes données sont dans les colonnes M à IV , tu peux tester cette adaptation
(les abscisses sont dans la colonne M et les valeurs d'ordonnées à partir de la colonne N)


Private Sub CommandButton1_Click()
Dim X As Byte, i As Byte
Dim j As Integer, Debut As Integer, Fin As Integer
Dim Plage As Range, Plage2 As Range

If ListBox1.Value = '' Then Exit Sub
If ComboBox1.ListIndex = -1 Or ComboBox2.ListIndex = -1 Then Exit Sub

If ComboBox1.ListIndex > ComboBox2.ListIndex Then
MsgBox 'La date de fin ne peut pas etre antérieure à la date de début .'
Exit Sub
End If

Debut = ComboBox1.ListIndex + 2
Fin = ComboBox2.ListIndex + 2

Set Plage = Feuil1.Range('M' & Debut & ':M' & Fin)

Application.ScreenUpdating = False
Worksheets(1).ChartObjects('Graphique 1').Activate

For j = ActiveChart.SeriesCollection.Count To 1 Step -1
ActiveChart.SeriesCollection(j).Delete
Next j

For i = 0 To ListBox1.ListCount - 1 'boucle sur les éléments de la listbox

If ListBox1.Selected(i) = True Then
X = X + 1

ActiveChart.SeriesCollection.NewSeries
Set Plage2 = Feuil1.Range(Feuil1.Cells(Debut, i + 14).Address & ':' & Feuil1.Cells(Fin, i + 14).Address)

ActiveChart.SeriesCollection(X).Values = Plage2
If X = 1 Then ActiveChart.SeriesCollection(X).XValues = Plage
ActiveChart.SeriesCollection(X).Name = ListBox1.List(i) ' nom de la courbe
ActiveChart.SeriesCollection(X).Border.ColorIndex = i + 4
End If

Next i

Unload Me
Feuil1.Range('K373').Select
Application.ScreenUpdating = True

End Sub



Private Sub UserForm_Initialize()
Dim Y As Integer

Dim X As Integer
For X = 14 To 256
ListBox1.AddItem Feuil1.Cells(1, X)
Next X

For Y = 2 To 366
ComboBox1.AddItem Format(Feuil1.Range('M' & Y), 'dd mmmm')
ComboBox2.AddItem Format(Feuil1.Range('M' & Y), 'dd mmmm')
Next Y

End Sub




bonne journée
MichelXld
 

Discussions similaires

Réponses
6
Affichages
349

Statistiques des forums

Discussions
312 322
Messages
2 087 280
Membres
103 507
dernier inscrit
tapis23