Macro change involontairement la langue des dates sur axe abscisses

Bonjour,

Pour donner un peu de contexte, je suis un débutant en VBA, je viens de débuter il y a 2 jours dans le cadre d'un projet mais j'ai une maîtrise avancée des données dans d'autres langages informatique. N'ayant pas le temps de me former complètement et rigoureusement dans ce langage, tout mon travail repose sur des recherches internet et un peu de GPT.

Une partie de mon travaille correspond à une macro qui modifier la plage de données à afficher sur un graphique à partir d'une date de début et d'une date de fin et ajoute également les étiquettes correspondants a la dernière valeur.

Problème, lorsque je lance ma macro, tout fonctionne comme prévu à l'exception de l'axe des abscisses qui passe les dates (format mmm) en anglais (ex: Aout -> Aug).

Voici le code:

Sub MàJ_graphique_1A()
'
' update Macro
'
    Dim startIndex As Long
    Dim endIndex As Long

    startIndex = Range("U51").Value 
    endIndex = Range("U50").Value 

    ActiveSheet.ChartObjects("Construction").Activate
    Application.CutCopyMode = False

    ActiveChart.FullSeriesCollection(1).Values = _
        "='Construction'!$T$" & startIndex & ":$T$" & endIndex & ""

    ActiveChart.FullSeriesCollection(2).Values = _
        "='Construction'!$V$" & startIndex & ":$V$" & endIndex & ""

    ActiveChart.FullSeriesCollection(3).Values = _
        "='Construction'!$E$" & startIndex & ":$E$" & endIndex & "" 

    ActiveChart.FullSeriesCollection(4).Values = _
        "='Construction'!$F$" & startIndex & ":$F$" & endIndex & "" 

    ActiveChart.FullSeriesCollection(1).XValues = _
        "='Construction'!$A$" & startIndex & ":$B$" & endIndex & ""

    ActiveChart.FullSeriesCollection(4).XValues = _
        "='Construction'!$A$" & startIndex & ":$B$" & endIndex & ""

    With ActiveChart.FullSeriesCollection(3)
        .ApplyDataLabels AutoText:=True, _
            LegendKey:=False, _
            ShowSeriesName:=False, _
            ShowCategoryName:=False, _
            ShowValue:=False, _
            ShowPercentage:=True, _
            ShowBubbleSize:=False
        .Points(.Points.Count).ApplyDataLabels ShowValue:=True
        With .DataLabels.Font
            .Color = RGB(255, 192, 0)
            .Name = "Uni Neue Heavy"
            .Size = 9
        End With
        .DataLabels.NumberFormat = "+0,0%;-0,0%"
        .Points(.Points.Count).ApplyDataLabels ShowValue:=True
    End With

    With ActiveChart.FullSeriesCollection(4)
        .ApplyDataLabels AutoText:=True, _
            LegendKey:=False, _
            ShowSeriesName:=False, _
            ShowCategoryName:=False, _
            ShowValue:=False, _
            ShowPercentage:=True, _
            ShowBubbleSize:=False
        .Points(.Points.Count).ApplyDataLabels ShowValue:=True
        With .DataLabels.Font
            .Color = RGB(45, 58, 75)
            .Name = "Uni Neue Heavy"
            .Size = 9
        End With
        .DataLabels.NumberFormat = "+0,0%;-0,0%"
        .Points(.Points.Count).ApplyDataLabels ShowValue:=True
    End With
End Sub

Je soupçonne que le problème provient de l'ajout des étiquettes.

ps : Je ne peux pas d'envoyer de fichier Excel (même anonymisé) par peur de transmettre des données confidentielles que j'aurais oublié d'enlever (connexions database, etc). Si cela est vraiment nécessaire, j'effectuerai un nouveau fichier comprenant uniquement la partie problématique la semaine prochaine.

En attendant je vous souhaite à tous de très bonnes journées.

Cordialement KDF

bonjour, avec un fichier anonymisé, c'est plus facile ...

Vous aurez quelque part besoin de

... .NumberFormat = "[$-fr-FR]jj mmm aa"

mais c'est difficile a dire où exactement, ??? après le dernier "End with" comme avant-dernière ligne

 ActiveChart.Axes(xlCategory).TickLabels.NumberFormat = "[$-fr-FR]jj mmm aa"

Bonjour,

J'ai identifier le problème avec le débogage pas à pas. Il s'agit de la ligne :

    ActiveChart.FullSeriesCollection(1).XValues = _
        "='Construction neuve de logements'!$A$" & startIndex & ":$B$" & endIndex & ""
      

Je pense également que le format de mes étiquettes (qui diffère entre les colonnes A et B) sur l'axe des abscisses pose problème.

Je n'ai pas trouvé de réelle solution à ce problème, donc je l'ai contourné en effectuant certaines modifications, telles que changer la largeur d'une colonne ou encore la date de début de mon graphique. Les dates reviennent ainsi au format initial.

J'ai ainsi ajouté une ligne de code (inutile) qui affecte la valeur de ma cellule "date de départ" à elle-même. Cela semble forcer le fichier à reconsidérer les dates et à utiliser le bon format.

Voici quand même mon fichier anonymisé si quelqu'un souhaite y jeter un coup d'œil.

Bonne continuation.

KDF

Rechercher des sujets similaires à "macro change involontairement langue dates axe abscisses"