Traiter une erreur de compilation en VBA

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 !

tontonexcel

XLDnaute Occasionnel
Bonjour à tous,

Je suis en train de tester une macro qui doit fonctionner sous Excel 2007 et versions supérieures

Fonctionnement très simple : Désactiver l'affichage du volet dans un graphique croisé dynamique

Sur Excel 2007 : ActiveWorkbook.ShowPivotChartActiveFields = False

Sur Excel 2010 : ActiveChart.ShowAllFieldButtons = False

J'ai donc fait un petit test avec Application.Version pour tester la version d'Excel, mais le souci est que la syntaxe 2010 n'existe pas dans 2007 à l'exécution j'ai une erreur de compilation

Comment est-il possible de contourner cela ?

Je joins éventuellement le fichier la macro est événementielle dans la feuille Histogramme

Merci à vous
 

Pièces jointes

Re : Traiter une erreur de compilation en VBA

Bonjour.

Vous pouvez au moins limiter les dégâts (en termes d'adaptations à effectuer) à l'aide de directives de compilation conditionnelle #Const, #If, #ElseIf, #Else et #End If, même s'il n'existe hélas pas de constantes de compilation conditionnelles toutes prêtes dépendant de la version d'Excel, ce qu'il reste à vérifier. Il y en a qui dépendent de la version de VBA: VBA6, VBA7. À tester.
 
Dernière édition:
Re : Traiter une erreur de compilation en VBA

Bonjour Dranreb

Je me doutais malheureusement que cela allait être un peu compliqué car effectivement le compilateur fait bien son travail (trop bien 🙄)... Peut-être dans une prochaine version !

Merci en tout cas pour la réponse !
 
Re : Traiter une erreur de compilation en VBA

Essayez quand même ça à tout hasard, au cas où ça résoudrait quand même le problème:
VB:
#If VBA7 Then
   ActiveChart.ShowAllFieldButtons = True
#Else
   ActiveWorkbook.ShowPivotChartActiveFields = True
#End If
Si ça ne le résout pas il restera toujours la possibilité d'utiliser un autre nom initialisé préalablement par #Const Vers2010 = 1
 
Re : Traiter une erreur de compilation en VBA

Eh bien ça fonctionne 😉 Franchement je ne connaissais pas du tout ces conditions, juste pour ma connaissance et pour voir si j'ai bien compris, le # teste le code VBA en cours de compilation ?

Merci beaucoup dans tous les cas et bon dimanche !!
 
Re : Traiter une erreur de compilation en VBA

Oui, un peu. Ce sont des directives de compilation conditionnelles. Si l'expression (qui doit être composée de constantes de compilation conditionnelles) derrière un #If est nulle toutes instructions derrières le Then sont ignorées jusqu'à rencontre d'un #ElseIf, #Else ou #End If
 
- 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

Retour