Graphique : Affichage abscisses table de données

Bonjour,

J'ai repris un fichier sous Excel 2013, il vient d'être migré en 2016. Il existe depuis plusieurs années (2003), et, après être passé sous Excel 2016, j'ai une erreur aléatoire sur l'affichage de mes dates dans l'axe des abscisses de mes graphiques, uniquement sur la table de données. Les dates affichent parfois "09/yyyy" au lieu de "09/2018"...

Après plusieurs recherchent sur le forum, je n'ai plus de pistes concernant le bug d'affichage.

La mise à jour de ses graphiques se réalisent par macro depuis un bouton "Mise a jour graphique" qui est codée en VBA.

Jusqu'à présent, le bug est réellement aléatoire, l'axe des abscisses affiche le mauvais format 1 clique sur 3 et quand il y a le problème. Le bug disparaît dès que je clique sur le bandeau : Outils de graphique -> Création -> Sélectionner des données.

Quelqu'un pourrait-il me donner des pistes, j'ai scrupuleusement vérifier les plages de données, le code etc, mais je sèche. Peut -il s'agir d'un problème suite à la migration dans office 2016 ?

NB: le fichier est confidentiel, je ne peux malheureusement pas le partager, en revanche, je peux vous mettre quelques morceaux de codes et des screens.

Merci à ceux qui ont pris le temps de me lire jusqu'au bout.

Exemple du code qui permet la màj des graphiques :

Sub graph_courbe_cible()
Dim NbrMois As Integer

NbrFct = Sheets("BdD").Range("AF11")

' Mise à jour des variables fct de la selection
valeur = Sheets("BdD").Range("AA20")
If valeur = 0 Then
    NbrMois = Sheets("BdD").Range("O2")             ' nombre Jalon actif
    If NbrMois = 0 Then                             ' cas où aucun jalon n'a été créé
        NbrMois = Sheets("BdD").Range("BW2")        ' nombre Jalon actif
    End If
Else
   NbrMois = Sheets("BdD").Range("BW2")             ' nombre Jalon actif
End If
'Mise à jour des graphiques
If NbrFct >= 1 Then
    ' graphique fonction 1 :
    Sheets("Avancement_2").Select
    ActiveSheet.ChartObjects("Graphique 3").Activate
    ActiveChart.SeriesCollection(1).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(2).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(3).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(4).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(5).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74" 
    'ActiveChart.SeriesCollection(6).Values = "=BdD!R3C76:R" & 2 + NbrMois & "C76"
    ActiveChart.SeriesCollection(7).Values = "=BdD!R3C76:R" & 2 + NbrMois & "C76"   
End If

If NbrFct >= 2 Then
    ' graphique fonction 2 
    Sheets("Avancement_2").Select
    ActiveSheet.ChartObjects("Graphique 4").Activate
    ActiveChart.SeriesCollection(1).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(2).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(3).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(4).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(5).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74" 
    'ActiveChart.SeriesCollection(6).Values = "=BdD!R3C77:R" & 2 + NbrMois & "C77"
    ActiveChart.SeriesCollection(7).Values = "=BdD!R3C77:R" & 2 + NbrMois & "C77"   
End If

If NbrFct >= 3 Then
    ' graphique fonction 3 
    Sheets("Avancement_2").Select
    ActiveSheet.ChartObjects("Graphique 9").Activate
    ActiveChart.SeriesCollection(1).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(2).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(3).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(4).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(5).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"  
    'ActiveChart.SeriesCollection(6).Values = "=BdD!R3C78:R" & 2 + NbrMois & "C78"
    ActiveChart.SeriesCollection(7).Values = "=BdD!R3C78:R" & 2 + NbrMois & "C78"   
End If

If NbrFct >= 4 Then
    ' graphique fonction 4
    Sheets("Avancement_2").Select
    ActiveSheet.ChartObjects("Graphique 10").Activate
    ActiveChart.SeriesCollection(1).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(2).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(3).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(4).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(5).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    'ActiveChart.SeriesCollection(6).Values = "=BdD!R3C79:R" & 2 + NbrMois & "C79"
    ActiveChart.SeriesCollection(7).Values = "=BdD!R3C79:R" & 2 + NbrMois & "C79" 
End If

If NbrFct >= 5 Then
    ' graphique fonction 5 
    Sheets("Avancement_2").Select
    ActiveSheet.ChartObjects("Graphique 17").Activate
    ActiveChart.SeriesCollection(1).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(2).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(3).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(4).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(5).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"  
    'ActiveChart.SeriesCollection(6).Values = "=BdD!R3C80:R" & 2 + NbrMois & "C80"
    ActiveChart.SeriesCollection(7).Values = "=BdD!R3C80:R" & 2 + NbrMois & "C80"   
End If

If NbrFct >= 6 Then
    ' graphique fonction 6 
    Sheets("Avancement_2").Select
    ActiveSheet.ChartObjects("Graphique 18").Activate
    ActiveChart.SeriesCollection(1).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(2).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(3).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(4).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
    ActiveChart.SeriesCollection(5).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74" 
    'ActiveChart.SeriesCollection(6).Values = "=BdD!R3C81:R" & 2 + NbrMois & "C81"
    ActiveChart.SeriesCollection(7).Values = "=BdD!R3C81:R" & 2 + NbrMois & "C81" 
End If

' SP : graphique avancement global
Sheets("Avancement").Select
ActiveSheet.ChartObjects("Graphique 3").Activate
ActiveChart.SeriesCollection(1).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
ActiveChart.SeriesCollection(2).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
ActiveChart.SeriesCollection(3).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
ActiveChart.SeriesCollection(4).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
ActiveChart.SeriesCollection(5).XValues = "=BdD!R3C74:R" & 2 + NbrMois & "C74"
ActiveChart.SeriesCollection(7).Values = "=BdD!R3C82:R" & 2 + NbrMois & "C82"

End Sub
capture

Bonjour à vous tous,

Est ce que certaines personnes peuvent me donner quelques pistes ?

J'ai pensé à reprendre l'affectation des plages de données, pour voir si ce n'est pas une perte de référence.

Comme cela je valide, que l'utilisation des FormulaR1C1 est correct et n'est pas la cause du problème.

Ou inversement, si le bug disparaît c'est qu'il s'agissait d'une perte de référence.

Je prends toutes les idées qui me permettront de faire le point et de résoudre ce bug.

Merci

Rechercher des sujets similaires à "graphique affichage abscisses table donnees"