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

XL 2016 VBA Format de date dans un graphique

danielco

XLDnaute Accro
Bonjour,

Je n'arrive pas à récupérer les dates de l'axe des abscisses au format JJ/MM/AAAA. Je suis obligé de passer par un tableau (array) car la plage de dates est filtrée et je n'en utilise que certaines. J'ai créé un classeur exemple en PJ. Voici la macro :

Code:
Sub test()
  Dim TablY() As Double, TablX() As Date, C As Range, I As Long
  I = -1
  With Sheets(1).ChartObjects(1).Chart
    For Each C In [A2:A5]
      I = I + 1
      ReDim Preserve TablX(I)
      ReDim Preserve TablY(I)
      TablX(I) = C.Value
      TablY(I) = C.Offset(, 1).Value
    Next C
    .SeriesCollection(1).Values = TablY
    .SeriesCollection(1).XValues = TablX
  End With
End Sub

J'obtiens des dates au format M/J/AAAA que je n'arrive pas à mettre en forme.

Pouvez-vous m'aider ?

Cordialement.

Daniel
 

Pièces jointes

  • exemple daniel.xlsm
    24.7 KB · Affichages: 5
Solution
Bonjour

Une façon de faire
VB:
Sub test()
  Dim TablY(), TablX(), C As Range, I As Long
  I = -1
  With Sheets(1).ChartObjects(1).Chart
    For Each C In [A2:A5]
      I = I + 1
      ReDim Preserve TablX(I)
      ReDim Preserve TablY(I)
      TablX(I) = C.Value2
      TablY(I) = C.Offset(, 1).Value2
    Next C
    .SeriesCollection(1).Values = TablY
    .SeriesCollection(1).XValues = TablX
  End With
End Sub

Staple1600

XLDnaute Barbatruc
Bonjour

Une façon de faire
VB:
Sub test()
  Dim TablY(), TablX(), C As Range, I As Long
  I = -1
  With Sheets(1).ChartObjects(1).Chart
    For Each C In [A2:A5]
      I = I + 1
      ReDim Preserve TablX(I)
      ReDim Preserve TablY(I)
      TablX(I) = C.Value2
      TablY(I) = C.Offset(, 1).Value2
    Next C
    .SeriesCollection(1).Values = TablY
    .SeriesCollection(1).XValues = TablX
  End With
End Sub
 

danielco

XLDnaute Accro

Bravo ! Mais... Pourquoi ?

Daniel
 

Staple1600

XLDnaute Barbatruc
Re

Le deuxième code est encore plus simple
(mais ai-je bien compris ce que tu veux faire)

Quant au pourquoi;
As Variant (plutôt que As Date) semble éviter le problème
et Value2 préférable à Value.
 

Discussions similaires

Réponses
0
Affichages
352
Réponses
1
Affichages
432
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…