![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre du Club
![]() Date d'inscription: juillet 2008
Messages: 95
|
Bonjour,
je voudrais créer un graph sur la feuille Récap_3ème tri_V_élo1 et le positionner sous la cellule Range("F" & j + 17&). J'ai crée le programme suivant: Code :
Sheets("Récap_3ème tri_V_élo1").Activate
Range("F" & j + 17&).Select
Charts.Add
graph_absence = ActiveChart.Name
ActiveChart.ChartType = xlPie
ActiveChart.SetSourceData Source:=Sheets("Récap_3ème tri_V_élo1").Range( _
"F82:F83"), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:= _
"Récap_3ème tri_V_élo1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Représentation du taux d'absences"
End With
ActiveChart.HasLegend = False
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False, _
HasLeaderLines:=True
ActiveChart.ChartTitle.Select
ActiveChart.PlotArea.Select
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Graphique 13").IncrementLeft -8.25
ActiveSheet.Shapes("Graphique 13").IncrementTop 158.25
De plus pour le code suivant: Code :
ActiveSheet.Shapes("Graphique 13").IncrementLeft -8.25 ActiveSheet.Shapes("Graphique 13").IncrementTop 158.25 Code :
graph_absence = ActiveChart.Name
Est ce que quelqu'un peut m'aider? Merci d'avance. |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: février 2005
Localisation: Une petite rue qui "avait" un merle
Messages: 11 633
|
Incremente déplace ton graph
Top et left le positionnent Code :
ActiveSheet.Shapes("Graphique 13").Top = 10 ActiveSheet.Shapes("Graphique 13").Left = 10
__________________
Je...ne...réponds...pas....aux...questions...techniques... par...mp La recherche (VBA-E) : Le Forum, La FAQ, Les cours et tutoriels, Contribuez, Les Sources et... l'Aide en ligne !!!
|
|
|
|
|
|
#3 (permalink) |
|
Membre du Club
![]() Date d'inscription: juillet 2008
Messages: 95
|
ok merci et pour le positionnement sur la feuille?
Vu que j'active la feuille sur laquelle je veux mettre le graphique pourquoi il se met sur une autre feuille au hasard dans le classeur? Il faut que je fasse quoi? |
|
|
|
|
|
#4 (permalink) |
![]() Date d'inscription: février 2005
Localisation: Une petite rue qui "avait" un merle
Messages: 11 633
|
Pour la feuille dans laquelle incorporer le graphe, inutile de la sélectionner
Code :
Dim Graph As Chart Set Graph = Charts.Add With Graph .ChartType = xlColumnClustered .SetSourceData Source:=Sheets("Récap_3ème tri_V_élo1").Range( _ "F82:F83"), PlotBy:=xlColumns .Location Where:=xlLocationAsObject, Name:= _ "Récap_3ème tri_V_élo1" End With With ActiveChart .HasTitle = True .etc. End With
__________________
Je...ne...réponds...pas....aux...questions...techniques... par...mp La recherche (VBA-E) : Le Forum, La FAQ, Les cours et tutoriels, Contribuez, Les Sources et... l'Aide en ligne !!!
|
|
|
|
|
|
#6 (permalink) |
|
Membre du Club
![]() Date d'inscription: juillet 2008
Messages: 95
|
Bonjour,
je souhaite créer un graph en secteur, le positionner sur la feuille Récap_3ème tri_V_élo1 et le positionner à l'endroit de la cellule Range("F" & j + 17&). De plus comme je réalise plusieurs graph il faut que je trouve une méthode générique pour disposer le graph que je viens de créer. J'ai réalisé le code suivant: Code :
Sheets("Récap_3ème tri_V_élo1").Activate
Range("F" & j + 17&).Select
Dim Graph As Chart
Set Graph = Charts.Add
With Graph
.ChartType = xlPie
.SetSourceData Source:=Sheets("Récap_3ème tri_V_élo1").Range( _
"F82:F83"), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:= _
"Récap_3ème tri_V_élo1"
End With
graph_abscence = ActiveChart.Name
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Absence"
End With
ActiveChart.HasLegend = False
ActiveSheet.ChartObjects(graph_abscence).Activate
ActiveWindow.Visible = False
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlMaximized
Sheets("Récap_3ème tri_V_élo1").Select
ActiveSheet.ChartObjects(graph_abscence).Activate
ActiveChart.Paste
Sheets("Récap_3ème tri_V_élo1").Activeshapes.Right = Range("F" & j + 17&).Right
Sheets("Récap_3ème tri_V_élo1").Activeshapes.Top = Range("F" & j + 17&).Top
Est ce que quelqu'un peut m'aider? Merci d'avance. |
|
|
|
|
|
#7 (permalink) |
![]() Date d'inscription: février 2005
Localisation: Une petite rue qui "avait" un merle
Messages: 11 633
|
Pourquoi dis-tu que mon code, ici, ne fonctionne pas et que tu l'utilises ?
__________________
Je...ne...réponds...pas....aux...questions...techniques... par...mp La recherche (VBA-E) : Le Forum, La FAQ, Les cours et tutoriels, Contribuez, Les Sources et... l'Aide en ligne !!!
|
|
|
|
|
|
#9 (permalink) |
|
Membre du Club
![]() Date d'inscription: juillet 2008
Messages: 95
|
Bonjour,
les lignes en bleu ne fonctionnent pas, je ne comprends pas pourquoi. Mon but au niveau des lignes en bleu est de coller le graph et ensuite de le positionner. Code :
Sheets("Récap_3ème tri_V_élo1").Activate
Range("F" & j + 17&).Select
Dim Graph As Chart
Set Graph = Charts.Add
With Graph
.ChartType = xlPie
.SetSourceData Source:=Sheets("Récap_3ème tri_V_élo1").Range( _
"F82:F83"), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:= _
"Récap_3ème tri_V_élo1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Absence"
End With
ActiveChart.HasLegend = False
graph_absence = ActiveChart.Name
nom = ActiveSheet.Name
nom2 = Len(graph_absence) - Len(nom)
graph_absence2 = Right(graph_absence, nom2)
ActiveSheet.ChartObjects(graph_absence2).Activate
ActiveWindow.Visible = False
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlMaximized
Sheets("Récap_3ème tri_V_élo1").Select
ActiveSheet.ChartObjects(graph_absence2).Activate
Charts(graph_absence2).Paste
ActiveSheet.Shapes(graph_absence2).Right = Range("F" & j + 17&).Right
ActiveSheet.Shapes(graph_absence2).Top = Range("F" & j + 17&).Top
Merci d'avance. |
|
|
|
|
|
#10 (permalink) | |
![]() Date d'inscription: février 2005
Localisation: Une petite rue qui "avait" un merle
Messages: 11 633
|
Déjà une question : Où copies-tu "quelque chose" pour le coller ici ?
Citation:
__________________
Je...ne...réponds...pas....aux...questions...techniques... par...mp La recherche (VBA-E) : Le Forum, La FAQ, Les cours et tutoriels, Contribuez, Les Sources et... l'Aide en ligne !!!
|
|
|
|
|
|
|
#11 (permalink) |
|
Membre du Club
![]() Date d'inscription: juillet 2008
Messages: 95
|
Voilà là j'ai rajouté la copie mais ça marche toujours pas.
Code :
ActiveSheet.ChartObjects(graph_absence2).Activate
ActiveChart.Copy
ActiveWindow.Visible = False
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlMaximized
Sheets("Récap_3ème tri_V_élo1").Select
ActiveSheet.ChartObjects(graph_absence2).Activate
ActiveChart.Paste
ActiveSheet.Shapes(graph_absence2).Right = Range("F" & j + 17&).Right
ActiveSheet.Shapes(graph_absence2).Top = Range("F" & j + 17&).Top
|
|
|
|
|
|
#12 (permalink) | |
![]() Date d'inscription: février 2005
Localisation: Une petite rue qui "avait" un merle
Messages: 11 633
|
C'est l'objet ChartObject qui a la propriété Left et Top, pas l'objet Chart
Avec l'object Shape, tu peux tester ça Code :
Sub Test() Dim FL1 As Worksheet Set FL1 = Worksheets("Feuil1") With FL1.Shapes(1) .Select .Top = 12 .Left = 12 End With End Sub Mais poursuis tes questions dans la même discussion, ça m'évitera d'avoir à les fusionner. Il est toujours question ici de positionnement d'un graphe, dans une feuille précise d'abord, puis dans la feuille elle-même PS - A quoi servent ces lignes ? Citation:
Pour désigner ton graphe sans t'emm berter tu peux utiliser Code :
With FL1.Shapes(FL1.Shapes.count)
__________________
Je...ne...réponds...pas....aux...questions...techniques... par...mp La recherche (VBA-E) : Le Forum, La FAQ, Les cours et tutoriels, Contribuez, Les Sources et... l'Aide en ligne !!!
|
|
|
|
|
|
![]() |
![]() |
||
problème de positionnement d'un graphique 2
|
||
| Outils de la discussion | |
|
|