2010-10-22 14 views
0

Je travaille sur une tâche où je devrais remplir certaines données dans un classeur Excel (en utilisant .NET) et les objets de graphique existants dessineraient des graphiques linéaires basés sur les données données. Malheureusement, une macro dans le classeur génère une erreur "Unable to set MinimumScaleIsAuto property of Axis class".Excel - impossible de définir la propriété MinimumScaleIsAuto de la classe Axis

ActiveSheet.ChartObjects("Chart 1").Activate 
ActiveChart.Axes(xlCategory).Select 
With ActiveChart.Axes(xlCategory) 
    .MinimumScaleIsAuto = True 
    .MaximumScaleIsAuto = True 
    .BaseUnitIsAuto = True 
    .MajorUnit = 2 
    .MajorUnitScale = xlMonths 
    .MinorUnitIsAuto = True 
    .Crosses = xlAutomatic 
    .AxisBetweenCategories = False 
    .ReversePlotOrder = False 
End With 

Je suis un débutant à VBA, Excel et l'cartographie auteur original du fichier Excel est pas là. Mais puisque le fichier Excel est utilisé depuis assez longtemps (avec les utilisateurs remplissant les données manuellement), je doute que je fasse quelque chose de mal avec l'entrée de données automatisée.

L'axe des abscisses est représenté par des dates et l'axe Y avec des valeurs à virgule flottante.

Cette erreur m'inquiète depuis assez longtemps et je suis coincé. Quelqu'un peut s'il vous plaît aidez-moi s'il vous plaît?

Répondre

0

Merci pour l'édition GSerg. J'ai compris ce qui causait le problème. J'envoie les dates comme des chaînes de mon programme car je ne voulais pas que le composant temps apparaisse avec la date. Excel ne les considère pas comme des dates mais comme des chaînes, je suppose. J'ai écrit une petite macro pour convertir chaque cellule de la gamme en utilisant la fonction CDate et tout a bien fonctionné.

Sub ConvertStringsToDates(oRange As Range) 
    For Each c In oRange.Cells 
     c.Value = CDate(c.Value) 
     c.NumberFormat = "dd-mmm-yy" 
    Next 
End Sub