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

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 bon sens

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 abscisseinv

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

Merci d'avance pour votre aide,

Bonjour,

n'aurais-tu pas utilisé 2 types de graphique différents(courbes et nuage de points ?) en lieu et place de nuage de points pour tes 2 graphiques ?

Ce sont tous les 2 des graphiques combinés :

type graphique

Bonjour,

eh bien tu as un conflit de type de données pour l'abscisse entre 2 types de graphique combinés. (l'un est considéré comme une série de valeurs sans relation entre elles (ordre selon les données du tableau) et l'autre comme étant une série continue (ordre croissant ou décroissant des valeurs))

Erreur de ma part ce sont tous des courbes avec marques :

type graph update

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

Qui lance cette macro :

macro

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,

Le code de la macro Actualiser :

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) :

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

bonsoir,

désolé je ne vois rien d'anormal de ce code.

Rechercher des sujets similaires à "inverser ordre valeurs axe abscisses"