Histogramme depuis un tableau + vba

  • Initiateur de la discussion Initiateur de la discussion zaza
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zaza

XLDnaute Nouveau
bonjour!!!!

je souhaite creer un vrai graphique sur une page exel dont les donnéee en abscisse et en ordonnées sont donnés dans 2 tableaux differents. hors je ne sais pas comment lui dire car tous ce que j ai trouvé c est la creation d un graph à partir de plage de données


ActiveChart.SetSourceData Source:=Sheets('feuil1').Range('A1:A10' & nb), PlotBy:=xlColumns

ActiveChart.seriesCollection(1).XValues = '='feuil1'!R2C1:R' & nb & 'C1'

il n y aurait pas la meme chose pour dire va me chercher en abscisse les données de ce tableau et idem pour les ordonnées

sinon savez vous comment on met dans une variable de type plage les données d'un tableau

Merci!



 
Bonjour.

Code:
Sub Trace()
    Dim SC As Series, Tabl1, Tabl2
    Tabl1 = Array(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)
    Tabl2 = Array(3, 6, 9, 12, 15, 18, 21, 24, 27, 30)
    Set SC = ActiveSheet.ChartObjects.Add(0, 0, 200, _
        100).Chart.SeriesCollection.NewSeries
    With SC
        .Values = Tabl2
        .XValues = Tabl1
    End With
End Sub

Alain CROS
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

A
Réponses
6
Affichages
25 K
S
Réponses
2
Affichages
773
sébastien
S
Retour