Graphique avec VBA
charly
-
Info -
Info -
Bonjour tous,
Je vais rentrer directement de le vif du sujet :
Je doit dans le cadre de mon stage en entreprise faire un petit programme qui doit faire un histograme à partir de données pris dans un tableau exel, plus précisement :
On choisis un feuille dans une listbox, on choisis une ligne de debut et une ligne de fin dans 2 combobox on click sur ok et sa fait un histograme en fonction des valeures qui sont comprises entre la valeur de la colone H de la ligne "debut" et la valeur de la colone H de la ligne "fin".
L'histograme doit me faire des baton en fonction du nombre de donnée qui sont dans un intervalle. Par exemple :
donnée : 1 5 6 9 10
intervalle : de 0 à 5=2, de 6 à 10=3, de 10 à 15=0
il faut juste de je programme l'histogramme car le choix de la page et de la ligne de debut et la ligne de fin sont déjà fait.
voici le code à l'heure actuelle :
Private Sub UserForm_Initialize()
'affichage des page dans la listbox1
Dim i As Integer
For i = 1 To Sheets.Count
ListBox1.AddItem Sheets(i).Name
Next
End Sub
Private Sub cmd_quitter_Click()
End
End Sub
Private Sub ListBox1_Click()
'j'utilise la feuille sélectionnée dans la listbox
With Sheets(UserForm.frm_feuilles.ListBox1.Value)
'je met dans un tableau les cellules A1:A et dernière cellule utilisée
tblcombo = .Range("A5:A" & .Range("A" & Rows.Count).End(xlUp).Row)
With UserForm.frm_debut.ComboBox1
'je vide le combobox
frm_debut.ComboBox1 = Clear
'je remplis la combo avec le tbl ci-dessus
frm_debut.ComboBox1.List = tblcombo
End With
With UserForm.frm_fin.ComboBox2
'je vide le combobox
frm_fin.ComboBox2 = Clear
'je remplis la combo avec le tbl ci-dessus
frm_fin.ComboBox2.List = tblcombo
End With
End With
End Sub
je precise que je suis débutant et que l'ont m'a aidé pour faire le programe des combo.
Merci d'avance pour l'aide que vous m'apporterez
Charly
Je vais rentrer directement de le vif du sujet :
Je doit dans le cadre de mon stage en entreprise faire un petit programme qui doit faire un histograme à partir de données pris dans un tableau exel, plus précisement :
On choisis un feuille dans une listbox, on choisis une ligne de debut et une ligne de fin dans 2 combobox on click sur ok et sa fait un histograme en fonction des valeures qui sont comprises entre la valeur de la colone H de la ligne "debut" et la valeur de la colone H de la ligne "fin".
L'histograme doit me faire des baton en fonction du nombre de donnée qui sont dans un intervalle. Par exemple :
donnée : 1 5 6 9 10
intervalle : de 0 à 5=2, de 6 à 10=3, de 10 à 15=0
il faut juste de je programme l'histogramme car le choix de la page et de la ligne de debut et la ligne de fin sont déjà fait.
voici le code à l'heure actuelle :
Private Sub UserForm_Initialize()
'affichage des page dans la listbox1
Dim i As Integer
For i = 1 To Sheets.Count
ListBox1.AddItem Sheets(i).Name
Next
End Sub
Private Sub cmd_quitter_Click()
End
End Sub
Private Sub ListBox1_Click()
'j'utilise la feuille sélectionnée dans la listbox
With Sheets(UserForm.frm_feuilles.ListBox1.Value)
'je met dans un tableau les cellules A1:A et dernière cellule utilisée
tblcombo = .Range("A5:A" & .Range("A" & Rows.Count).End(xlUp).Row)
With UserForm.frm_debut.ComboBox1
'je vide le combobox
frm_debut.ComboBox1 = Clear
'je remplis la combo avec le tbl ci-dessus
frm_debut.ComboBox1.List = tblcombo
End With
With UserForm.frm_fin.ComboBox2
'je vide le combobox
frm_fin.ComboBox2 = Clear
'je remplis la combo avec le tbl ci-dessus
frm_fin.ComboBox2.List = tblcombo
End With
End With
End Sub
je precise que je suis débutant et que l'ont m'a aidé pour faire le programe des combo.
Merci d'avance pour l'aide que vous m'apporterez
Charly
A voir également:
- Graphique avec VBA
- Changer carte graphique - Guide
- Graphique sparkline - Guide
- Graphique camembert excel - Guide
- Comment faire un graphique sur excel - Guide
- Planification de processeur graphique à accélération matérielle - Guide
1 réponse
Bonjour,
Voici un exemple de fonction pour une mise à jour d'un graphique de façon
dynamique en VBA:
Cdt
Info
Voici un exemple de fonction pour une mise à jour d'un graphique de façon
dynamique en VBA:
Function PremierGraphique() Dim rngCible As Range, strChaine As String, Compteur As Long Sheets(strNomFleGraph).Select ActiveSheet.ChartObjects("Graphique 6").Activate ActiveChart.ChartTitle.Select Selection.Characters.Text = "Incidents " & strNomClient & vbLf & "Année : " & LAnnee ActiveChart.ChartArea.Select ' Nom de la collection 1 Set rngCible = Sheets(strNomFleMaitre).Range("B5") ActiveChart.SeriesCollection(1).Name = rngCible ' Valeur de la collection 1 strChaine = "C" & BlocSection(0).AdrTot & ":N" & BlocSection(0).AdrTot Set rngCible = Sheets(strNomFleMaitre).Range(strChaine) ActiveChart.SeriesCollection(1).Values = rngCible ' Abscisse de la collection 1 Set rngCible = Sheets(strNomFleMaitre).Range("C1:N1") ActiveChart.SeriesCollection(1).XValues = rngCible ' Nom de la collection 2 strChaine = "B" & (BlocSection(0).AdrFin + 1) Set rngCible = Sheets(strNomFleMaitre).Range(strChaine) ActiveChart.SeriesCollection(2).Name = rngCible ' Valeur de la collection 2 strChaine = "C" & (BlocSection(0).AdrFin + 1) & ":N" & (BlocSection(0).AdrFin + 1) Set rngCible = Sheets(strNomFleMaitre).Range(strChaine) ActiveChart.SeriesCollection(2).Values = rngCible ' Abscisse de la collection 2 Set rngCible = Sheets(strNomFleMaitre).Range("C1:N1") ActiveChart.SeriesCollection(2).XValues = rngCible intMaximum = Application.WorksheetFunction.Max(Sheets(strNomFleMaitre).Range("C5:N5")) ActiveChart.Axes(xlValue).Select If (intMaximum > 5) Then Dummy = Round((intMaximum / 10) + 0.5) intMaximum = CInt(Val(Dummy * 10) + 10) With ActiveChart.Axes(xlValue) .MinimumScale = 0 .MaximumScale = intMaximum .MajorUnit = Round((intMaximum / 4) + 0.5) .MinorUnit = Round((intMaximum / 4) + 0.5) End With Else With ActiveChart.Axes(xlValue) .MaximumScale = 5 .MajorUnit = 1 .MinorUnit = 1 End With End If Range("A1").Select End Function ''
Cdt
Info
Dans mon code, le graphique est situé sur une feuille, il a été crée au préalable et est mise à jour avec ce code.
Cdt
Info