Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA "La méthode HasAxis de l'objet _Chart a échoué

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

S

ste1000

Guest
Bonjour à tous,

je bute sur un problème que j'ai retrouvé plusieurs fois sur des forums (dont celui-ci) sans réponse malheureusement.

Je dispose d'un tableur (non joignable pour cause confidentialité) qui contient de nombreux graphiques différents (dont par exemple des camemberts, histogrammes...). J'aimerais faire une macro qui mette en forme les axes abscisses et ordonnée lorsque ceux-ci existent.

J'utilise un code de la forme
With ActiveChart.Axes(xlValue)
... (mise en forme)
End With

Pour les histogrammes ça marche nickel mais pour les camemberts ça plante, évidemment car il n'est pas possible de définir un axe pour ce type de graphe. J'aimerais donc mettre un test du type :
If ActiveChart.HasAxis(xlValue, xlPrimary) Then
With ActiveChart.Axes(xlValue)
... (mise en forme)
End With
End If

Sauf que dans le cas de mon camembert j'obtiens le message "La méthode HasAxis de l'objet _Chart a échoué"

Quelqu'un aurait-il une idée ? Pour info j'utilise Excel 2002 sur PC.

Merci d'avance,

Stéphane
 
Re : VBA "La méthode HasAxis de l'objet _Chart a échoué

Bonjour Ste1000,
peut être en gérant l'erreur, comme ceci
A voir
Bruno

Code:
On Error Resume Next
With ActiveChart.Axes(xlValue)
if Err<>0 then Err.Clear:Goto camembert
... (mise en forme)
End With
Exit sub
camembert:
'la macro qui fonctionne pour sans Axe
End Sub
 
Re : VBA "La méthode HasAxis de l'objet _Chart a échoué

Bonjour à vous,

L'idée de Youki(BJ) est parfaite.

Sinon tu peux également utilise la méthode : ChartType

Code:
' Vérifier si le type de graphique contient "pie" = secteur
If InStr(1, ActiveChart.ChartType, "pie", vbTextCompare) = 0 Then
With ActiveChart.Axes(xlValue)
... (mise en forme)
End With
EndIf

A+
 
Re : VBA "La méthode HasAxis de l'objet _Chart a échoué

Bonjour,

merci beaucoup pour vos réponses !

La méthode ChartType est parfaite si je n'ai que 2 types de graphiques (camembert et histogramme), mais j'aimerais que ça fonctionne pour d'autres graphiques aussi, donc je vais m'en tenir à la méthode de Youki(BJ).

J'essaie comme ça et vous dirai si par hasard je trouve mieux dans l'intervalle.

Stéphane
 
Dernière modification par un modérateur:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

E
Réponses
2
Affichages
3 K
Edouarda65
E
L
Réponses
6
Affichages
2 K
lukes67
L
P
Réponses
9
Affichages
4 K
S
Réponses
24
Affichages
4 K
SCorbeil
S
S
Réponses
4
Affichages
2 K
stage_ferrit
S
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…