kkamadou
XLDnaute Junior
Bonjour Messieurs
Je veux créer deux graphiques différents à partir d’une base de données en cliquant sur deux formes (Ellipse8 et Ellipse9) mais le code bloque à ce niveau :
Set monGraphique = Sheets(1).Shapes.AddChart2(300, stile)
Voudriez-vous bien me porter une assistance? Merci
Sub CreaGraph()
Dim fin As Integer, Titre As String, zoneEntiere As Range, monGraphique As Shape
fin = Sheets("Feuil2").Range("A1048576").End(xlUp).Row
'SI CLIC SUR BOUTON "Ellipse8"
If Application.Caller = "Ellipse8" Then
Titre = "Nombre de renouvellement par adhérent."
ChartType = xl3DColumn 'c'était: "stile = xl3DColumn" au lieu de "ChartType= xl3DColumn"
'Dim monGraphique As Shape
For i = 1 To fin
Set plage1 = Sheets(2).Range("B1:B" & fin)
Set plage2 = Sheets(2).Range("N1:N" & fin)
Set zoneEntiere = Union(plage1, plage2)
Next
zoneEntiere.Copy Destination:=Sheets("Feuil1").Range("T1")
'selection des données
Sheets(1).Range("T1:U" & fin).Select
End If
'SI CLIC SUR BOUTON "Ellipse9"
If Application.Caller = "Ellipse9" Then
Titre = "Durées de validité des cotisations en cours."
stile = xlConeCol
For i = 1 To fin
Set plage1 = Sheets(2).Range("B1:B" & fin)
Set plage2 = Sheets(2).Range("O1:O" & fin)
Set zoneEntiere = Union(plage1, plage2)
Next
zoneEntiere.Copy Destination:=Sheets("Feuil1").Range("T1")
'selection des données
Sheets(1).Range("T1:U" & fin).Select
End If
'DANS LES DEUX CAS
'CREATION GRAPHIQUE
Set monGraphique = Sheets(1).Shapes.AddChart2(300, stile)
'Positionnement du graphique
With monGraphique
.Top = Range("D4").Top
.Left = Range("D4").Left
.Width = 790
.Height = 390
End With
Worksheets(1).ChartObjects(1).Activate 'active le graphique
'TEXTE DE L'ENSEMBLE DU GRAPHIQUE
ActiveChart.ChartArea.Font.Size = 11
ActiveChart.ChartArea.Font.Bold = False
ActiveChart.ChartArea.Font.Name = "Calibri"
ActiveChart.ChartArea.Font.ColorIndex = 1
'Donner un titre au graphique
ActiveChart.ChartTitle.Select 'seletionner le titre
ActiveChart.ChartTitle.Text = Titre 'donne le titre
ActiveChart.ChartTitle.Font.Size = 28
ActiveChart.ChartTitle.Font.Italic = True
ActiveChart.ChartTitle.Font.Bold = True
ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Characters(1, Len(Titre)).Font.Fill.ForeColor.RGB = RGB(27, 141, 61)
'abscisses
With ActiveChart.Axes(xlCategory).TickLabels.Font
.Name = "Calibri"
.FontStyle = "Gras italique"
.Size = 12
.Italic = True
.Bold = True
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Background = xlAutomatic
End With
Range("A1").Select
End Sub
Je veux créer deux graphiques différents à partir d’une base de données en cliquant sur deux formes (Ellipse8 et Ellipse9) mais le code bloque à ce niveau :
Set monGraphique = Sheets(1).Shapes.AddChart2(300, stile)
Voudriez-vous bien me porter une assistance? Merci
Sub CreaGraph()
Dim fin As Integer, Titre As String, zoneEntiere As Range, monGraphique As Shape
fin = Sheets("Feuil2").Range("A1048576").End(xlUp).Row
'SI CLIC SUR BOUTON "Ellipse8"
If Application.Caller = "Ellipse8" Then
Titre = "Nombre de renouvellement par adhérent."
ChartType = xl3DColumn 'c'était: "stile = xl3DColumn" au lieu de "ChartType= xl3DColumn"
'Dim monGraphique As Shape
For i = 1 To fin
Set plage1 = Sheets(2).Range("B1:B" & fin)
Set plage2 = Sheets(2).Range("N1:N" & fin)
Set zoneEntiere = Union(plage1, plage2)
Next
zoneEntiere.Copy Destination:=Sheets("Feuil1").Range("T1")
'selection des données
Sheets(1).Range("T1:U" & fin).Select
End If
'SI CLIC SUR BOUTON "Ellipse9"
If Application.Caller = "Ellipse9" Then
Titre = "Durées de validité des cotisations en cours."
stile = xlConeCol
For i = 1 To fin
Set plage1 = Sheets(2).Range("B1:B" & fin)
Set plage2 = Sheets(2).Range("O1:O" & fin)
Set zoneEntiere = Union(plage1, plage2)
Next
zoneEntiere.Copy Destination:=Sheets("Feuil1").Range("T1")
'selection des données
Sheets(1).Range("T1:U" & fin).Select
End If
'DANS LES DEUX CAS
'CREATION GRAPHIQUE
Set monGraphique = Sheets(1).Shapes.AddChart2(300, stile)
'Positionnement du graphique
With monGraphique
.Top = Range("D4").Top
.Left = Range("D4").Left
.Width = 790
.Height = 390
End With
Worksheets(1).ChartObjects(1).Activate 'active le graphique
'TEXTE DE L'ENSEMBLE DU GRAPHIQUE
ActiveChart.ChartArea.Font.Size = 11
ActiveChart.ChartArea.Font.Bold = False
ActiveChart.ChartArea.Font.Name = "Calibri"
ActiveChart.ChartArea.Font.ColorIndex = 1
'Donner un titre au graphique
ActiveChart.ChartTitle.Select 'seletionner le titre
ActiveChart.ChartTitle.Text = Titre 'donne le titre
ActiveChart.ChartTitle.Font.Size = 28
ActiveChart.ChartTitle.Font.Italic = True
ActiveChart.ChartTitle.Font.Bold = True
ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Characters(1, Len(Titre)).Font.Fill.ForeColor.RGB = RGB(27, 141, 61)
'abscisses
With ActiveChart.Axes(xlCategory).TickLabels.Font
.Name = "Calibri"
.FontStyle = "Gras italique"
.Size = 12
.Italic = True
.Bold = True
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Background = xlAutomatic
End With
Range("A1").Select
End Sub