Utilisation de tableaux pour faire un graphique
Fermé
batou26
Messages postés
1
Date d'inscription
jeudi 26 juillet 2018
Statut
Membre
Dernière intervention
26 juillet 2018
-
Modifié le 26 juil. 2018 à 16:11
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 4 août 2018 à 17:13
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 4 août 2018 à 17:13
A voir également:
- Utilisation de tableaux pour faire un graphique
- Notice d'utilisation - Guide
- Utilisation chromecast - Guide
- Comment faire un tableau - Guide
- Faire un graphique sur excel - Guide
- Changer carte graphique - Guide
1 réponse
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 4 août 2018 à 18:02
Modifié le 4 août 2018 à 18:02
Bonjour,
Évites de mettre un code spécifique dans Workbook_Open
Il est préférable de placer le code dans un module standard et de l'appeler depuis Workbook_Open
Essaies ce code :
Évites de mettre un code spécifique dans Workbook_Open
Il est préférable de placer le code dans un module standard et de l'appeler depuis Workbook_Open
Essaies ce code :
' Note : il faut activer les références (dans Outils > Références ...) à : ' - Microsoft Scripting Runtime Option Explicit Sub test() Dim d As Dictionary 'Dictionnaire des dates et nombre pour chaque date Dim w As Workbook 'Classeur Dim x As Variant 'Tableau des valeurs de l'axe horizontal (dates) Dim v As Variant 'Tableau des valeurs de l'axe vertical (nombre) Dim r As Range 'Plage des données Dim c As Range 'Cellule analysée Dim k As Range 'Colonne des données Dim g As Chart 'Graphique Dim s As Series 'Série de donnéesdu graphique Dim n As String 'Nom de la colonne For Each w In Application.Workbooks If w.Name <> ThisWorkbook.Name Then Exit For Next w Set r = w.Worksheets(1).UsedRange Set r = r.Offset(1).Resize(r.Rows.Count - 1) For Each c In r.Rows(1).Cells If IsDate(c.Value) Then Set k = Intersect(r, c.EntireColumn) n = c.Offset(-1).Value Exit For End If Next c If Not k Is Nothing Then Set d = New Dictionary For Each c In k.Cells If Not d.exists(c.Text) Then d.Add c.Text, 1 Else d(c.Text) = d(c.Text) + 1 End If Next c End If If Not d Is Nothing Then v = d.Items x = d.Keys d.RemoveAll Set d = Nothing On Error Resume Next Set g = w.Charts(n) On Error GoTo 0 If Not g Is Nothing Then For Each s In g.SeriesCollection s.Delete Next s Else Set g = w.Charts.Add2 g.Name = n End If g.ChartType = xlColumnClustered 'ou autre g.SeriesCollection.NewSeries g.FullSeriesCollection(1).Name = n g.FullSeriesCollection(1).Values = v g.FullSeriesCollection(1).XValues = x g.ChartTitle.Text = n End If End Sub