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