Microsoft 365 Inverser l'ordre des valeurs sur l'axe des abscisses

sj4555

XLDnaute Junior
Bonjour à tous,

J'ai problème sur des graphiques dont des valeurs de dates sont affichées en abscisses,

Certains de ces graphiques affichent ces valeurs en sens inverse, c'est à dire que la data la plus récente est en première et la plus ancienne en dernière,

sens_invers.png
bon_sens.png


Pourtant les plages de données utilisées pour les graphiques sont du même type, alors pourquoi certains afficheraient les données dans le bon sens et pas d'autre ?

J'ai essayé de cliquer droit sur l'axe des abscisses > mise en forme de l'axe et de sélectionner "abscisse en ordre inverse":
abscisse_sens_invers.png
abscisseinv.png


Cela n'a pas donner le résultat souhaité,

Merci d'avance pour votre aide,
 

sj4555

XLDnaute Junior
Les graphiques sont tous des courbes avec des marques :
type_graph_update.png


En faisant quelque test j'ai pu me rendre compte qu'à chaque ouverture de fichier le problème était résolu,

Le problème apparaît uniquement lorsque j'appuie sur ce bouton :
actualiser.png

Qui lance cette macro :
macro.png


La macro Actualiser fait appel à des macros de traitement de données spécifiques à chaque graphique qui vont copier les données de la feuille source "Données brutes" ,

Par exemple la macro de SSA1 va copier les données de la colonne date et celles de la colonne SSA1 de la feuille "Données brutes" et les coller dans la feuille SSA1 et les traiter sur cette même feuille, le graphique SSA1 affiche ensuite les dernières données traitées de la feuille SSA1 à l'aide plages de données,

Chaque macro de traitement de données correspond à une feuille et à un graphique de la feuille "Suivi journalier air", toutes ces macros sont appelées dans la macro Actualiser,


La macro Actualiser_Suivi_journalier_air lié au bouton lance cette macro Actualiser qui vient actualiser toutes les données des graphiques et lance ensuite une ligne de code permettant de retourner sur la feuille "Suivi journalier air" , c'est cette dernier ligne de code qui pose problème, car quand on l'enlève il n'y a plus le problème mais on atterri sur une autre feuille ce qui n'est pas souhaitable.

Et ce problème ne touche que les graphiques SSA1 et SSA2, pourtant les plages de données et les macros liées à chaque graphique sont construites de la même manière.

ça me paraît complètement incompréhensible,

Je vous laisse le fichier en PJ pour mieux comprendre,
 

sj4555

XLDnaute Junior
Le code de la macro Actualiser :

VB:
Sub Actualiser()
'
' Macro permettant de lancer toutes les macros de traitements de données et...
' ... ainsi mettre à jour les données dans les graphiques et tableaux utilisant celles-ci
'

'
    SSA1m
    SSA2m
    SSA3m
    SSA4m
    PG1m
    PG2m
    PRm
    PSm
    RVm
    
End Sub

Le code de SSA1m pour exemple (les autres sont construites pareil) :

VB:
Sub SSA1m()
'
' SSA1 Macro
'

'
With Sheets("SSA1").Activate
    
    'on reinitialise la feuille
    reinit
    
    'on copie la colonne du tableau de données brutes correspondant au poste concerné, ainsi que...
    ' ...la colonne de dates sur notre feuille de traitement de données de ce même poste
    Worksheets("Données Brutes").Range("A:A,C:C").Copy Worksheets("SSA1").Range("A1")
    
    'on supprime les lignes ne contenant pas de données
    Range("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    
    'on utilise la fonction DeleteRowsByAdvancedFilter pour supprimer des lignes en fonction...
    '...des formules qu'on lui envoie en paramètre, correspondant aux conditions qui nous intéressent
    Dim rng As Range
    Dim FormulaText As String
    Dim FormulaTextA As String
    Dim FormulaTextB As String
    Dim FormulaTextC As String
    FormulaText = "=AND(B1<B2)"
    FormulaTextA = "=AND(B2<B3)"
    FormulaTextB = "=AND(B2=0)"
    FormulaTextC = "=AND(A2=A3)"
    Set rng = Worksheets("SSA1").Range("A1").CurrentRegion
    DeleteRowsByAdvancedFilter rng, FormulaText
    DeleteRowsByAdvancedFilter rng, FormulaTextA
    DeleteRowsByAdvancedFilter rng, FormulaTextB
    DeleteRowsByAdvancedFilter rng, FormulaTextC
    
    'on ajoute les headers pour se repérer directement sur la feuille entre toutes les données traitées
    Range("C1") = nbHeuresHeader
    Range("D1") = conso24hHeader
    Range("E1") = debitHoraireBrutHeader
    Range("F1") = debitHoraireHeader
    Range("G1") = moisHeader
    Range("H1") = anneeHeader

    Range("A1:H1").Font.FontStyle = "Gras"
    
    'on ajoute les formules permettant de traiter les données
    Range("C2") = nbHeures
    Range("D2") = conso24h
    Range("E2") = debitHoraireBrut
    Range("F2") = debitHoraire
    Range("G2") = mois
    Range("H2") = annee
    
    'on utilise la fonction AutoFill pour appliquer les formules sur autant de lignes qu'il y a de données
    Range("C2").AutoFill Destination:=Range("C2:C" & Cells(Rows.Count, "A").End(xlUp).Row), Type:=xlFillDefault
    Range("D2").AutoFill Destination:=Range("D2:D" & Cells(Rows.Count, "A").End(xlUp).Row), Type:=xlFillDefault
    Range("E2").AutoFill Destination:=Range("E2:E" & Cells(Rows.Count, "A").End(xlUp).Row), Type:=xlFillDefault
    Range("F2").AutoFill Destination:=Range("F2:F" & Cells(Rows.Count, "A").End(xlUp).Row), Type:=xlFillDefault
    Range("G2").AutoFill Destination:=Range("G2:G" & Cells(Rows.Count, "A").End(xlUp).Row), Type:=xlFillDefault
    Range("H2").AutoFill Destination:=Range("H2:H" & Cells(Rows.Count, "A").End(xlUp).Row), Type:=xlFillDefault
    
    'on modifie le format des données de la colonne C qui est du formate date/heure en heures
    Range("C2:C" & Cells(Rows.Count, "A").End(xlUp).Row).NumberFormat = "[h]"
    
    'On met à jour les plages de données utiliser dans les graphiques pour toujours avoir les 10...
    '...dernières valeurs de chaque postes après actualisation des données
    Names("DateSSA1").RefersToR1C1 = "=SSA1!R2C1:R11C1"
    Names("DebitSSA1").RefersToR1C1 = "=SSA1!R2C5:R11C5"

End With
    
End Sub
 

soan

XLDnaute Barbatruc
Inactif
Bonjour,

sj4555 a écrit : « je n'ai aucune idée de pourquoi, il fait 392 octets »

Le fichier a probablement été corrompu, et la presque totalité du contenu a été perdue ;
ce qui est bizarre, c'est qu'il n'y ait pas eu de message « Fichier corrompu ».

soan
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 708
Messages
2 112 090
Membres
111 416
dernier inscrit
philipperoy83