Je te remercie pour ton aide, ca marche!
Est ce que tu as une idee de comment faire pour que mon graph se mette à jour automatiquement dès que je modifie une valeur source, sachant que je prend les données dans une plage excel, j fais des calculs que je stock dans mon tableau et ensuite comme tu l'as sans doute compris
, je crée mon graph d apres ce tableau!
Je te remercie!
Public Sub histogramme(Plage As Range)
Dim TabPlage() As Double
Dim nbtotal As Integer
Dim max As Double
Dim min As Double
Dim etendu As Double
Dim PlageClasse, BorneTemp As Double
Dim nbclasse As Integer
Dim Bornes() As Double
Dim VarFrequence As Variant
Dim mycellule As Range
Dim SC As series
If Option_ClasseAuto.Value = True Then
With Application.WorksheetFunction
nbtotal = .Count(Plage)
max = .max(Plage)
min = .min(Plage)
End With
etendu = max - min
nbclasse = 1 + 10 / 3 * Log10(nbtotal)
PlageClasse = etendu / nbclasse
ReDim TabPlage(nbtotal - 1)
i = 0
For Each mycellule In Plage
TabPlage(i) = mycellule
i = i + 1
Next
ReDim Bornes(nbclasse)
BorneTemp = min
i = 0
Bornes(i) = BorneTemp
For i = 1 To (nbclasse)
Bornes(i) = BorneTemp + PlageClasse
BorneTemp = Bornes(i)
Next i
VarFrequence = Application.WorksheetFunction.Frequency(TabPlage, Bornes)
' test
MsgBox ('Test 0=' & Bornes(0))
Set SC = ActiveSheet.ChartObjects.Add(0, 0, 300, _
300).Chart.seriesCollection.NewSeries
With SC
.Values = VarFrequence
.XValues = Bornes
.HasDataLabels = True
.HasLeaderLines = True
End With
Worksheets(1).ChartObjects(1).Activate
With ActiveChart
.ChartType = xlColumnClustered
.HasTitle = True
.ChartTitle.Text = 'Histogramme'
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = 'Bornes'
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = 'Effectifs'
End With
MsgBox ('juste apres')
End If
End Sub