Améliorer code vba pour Graphique

  • Initiateur de la discussion Initiateur de la discussion argaz01
  • 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 !

argaz01

XLDnaute Junior
Bonjour tout le monde,

Pouvez-vous me dire pourquoi le code suivant me renvoie l'erreur: l'élément portant ce nom est introuvable au niveau de la 11ème ligne. En effet, j'aimerais réaliser un graph en camembert à partir d'un tableau à 2 colonnes que j'ai préalablement trié (somme des doublons) et ce à l'aide de vba. Sauf que je n'arrive qu'à faire un code qui permet de placer l'élément de base du graphique sans pouvoir le personnaliser.
Voici le code en question:
Code:
Sub CamembertAMF()
Set MaZone = Selection.CurrentRegion
MaFeuille = ActiveSheet.Name
Charts.Add
With ActiveChart
    .ChartType = xl3DPie
    .SetSourceData Source:=MaZone, PlotBy:=xlColumns
    .Location Where:=xlLocationAsObject, Name:=MaFeuille
End With
MonGraph = Right(ActiveChart.Name, Len(ActiveChart.Name) - InStr(1, ActiveChart.Name, " "))
With ActiveSheet.Shapes(MonGraph)
    .Top = ActiveSheet.[D3].Top
    .Left = ActiveSheet.[D3].Left
    .Height = ActiveSheet.[D3:J26].Height
    .Width = ActiveSheet.[D3:J26].Width
End With
End Sub

en vous remerciant d'avance

Cordialement
 
Re : Améliorer code vba pour Graphique

Bonjour,

essaye peut être ceci, à adapter :

Code:
Sub test()
Dim mazone As Range, c As ChartObject
Set mazone = Selection.CurrentRegion
Set c = Feuil1.ChartObjects.Add(Range("D3").Left, Range("D3").Top, 350, 150)
With c.Chart
    .ChartType = xl3DPie
    .SetSourceData Source:=mazone, PlotBy:=xlColumns
End With
End Sub

bon après midi
@+
 
Re : Améliorer code vba pour Graphique

Dois-je remplacer le terme mazone dans la ligne
Code:
Set mazone = Selection.CurrentRegion
ou le laisser comme tel, parceque là j'ai une erreur sur cette ligne "propriété ou méthode non gérée par cet objet".

Comment procéder? Et merci


Cordialement
 
Re : Améliorer code vba pour Graphique

Re,

oui présent dans mon code

Code:
Dim mazone As Range, c As ChartObject
Set mazone = Selection.CurrentRegion

attention, s'applique à la selection sur la feuille active, si tes données commencent en a1 sur toute la région courante, tu peux également coder ainsi :

Code:
Dim mazone As Range, c As ChartObject
Set mazone = Range("A1").CurrentRegion

en espérant que tu ais placé le code dans un module standard...
 
Re : Améliorer code vba pour Graphique

Re,

modifie ainsi :

Code:
Sub test()
Dim mazone As Range, c As ChartObject
Set mazone = Range("A1").CurrentRegion
Set c = Feuil1.ChartObjects.Add(Range("D3").Left, Range("D3").Top, [D3:J26].Width, [D3:J26].Height)
With c.Chart
    .ChartType = xl3DPie
    .SetSourceData Source:=mazone, PlotBy:=xlColumns
    .ChartTitle.Text = "montitre"
    .ApplyDataLabels xlDataLabelsShowPercent
End With
End Sub
 
Re : Améliorer code vba pour Graphique

Bonjouir tout le monde,

Merci à toi pierrot93, ton code est très bon, cependant il ne me renvoie pas les bons % de mon tableau (colonne B) d'ailleurs j'ai le même résultat en procedant sans vba dans excel et je dois toujours cocher la case valeur et décocher la case % dans option du graph/étiquette de données. Peut-tu m'éclairer sur ce point stp. En te remerciant d'avance.

Cordialment
 
Re : Améliorer code vba pour Graphique

C'est bon pierrot93, j'ai résolu l'erreur il fallait juste changer dans la dernière ligne Percent par Value et ça marche. Merci encore pour tes suggestions et bonne fin de journée à toi.


Cordialement
 
- 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

Réponses
1
Affichages
521
Réponses
0
Affichages
460
Réponses
16
Affichages
2 K
Réponses
1
Affichages
1 K
Retour