Mise en forme conditionnelle de plusieurs courbes

Sunn -  
Frenchie83 Messages postés 2254 Statut Membre -
Bonjour,

Je bloque sur une mise en forme conditionnelle que j'aimerais mettre en place sur un graphique "nuages de points" sur Excel. J'ai 2 courbes sinusoïdales (qu'on va appeler A et B).

Je ne cherche pas à toucher à la courbe A. C'est elle qui va me servir de base pour ma condition.
Je cherche à faire en Sorte que la courbe B soit en gras lorsqu'elle va dans le sens inverse de la courbe A, et qu'elle ne soit pas en gras lorsqu'elle va dans le même sens.

Il y a les 4 cas suivant, et j'aimerais le faire de manière automatique car à une mise en forme conditionnelle.
cas 1 : B en gras lorsque B descend et lorsque A monte
cas 2 : B en gras lorsque B monte et A descend
cas 3 : B pas en gras lorsque B descend et A descend
cas 4 : B pas en gras lorsque B monte et A monte

Est-ce que l'un d'entre vous pourrait m'expliquer comment procéder?

Merci par avance.

4 réponses

  1. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     
    Impossible à faire.

    Il n'est cependant pas impossible qu'un féru de VBA puisse te proposer une macro ...
    0
    1. Sunn
       
      Bonjour, pourtant quelqu'un m'a imprimé un graphique dont j'essaye de reproduire les séries et les courbes et c'est exactement ce qu'il à pu faire. Cependant ce n'est pas lui qui à réalisé son graphique donc il n'a pas pu m'aider... Je ne sais pas si il l'a transcris ses sinusoïdes sous formes de courbes ou de nuage de point par contre. Ce doit être faisable mais comment..

      J'ai fait un exemple de ce que j'ai fait si ça peut aider à me faire comprendre (en Feuille 1 mes calculs et en feuille 2 mon graph):

      https://www.cjoint.com/c/HIxhKRUyMc0

      Merci de votre réponse quoi qu'il en soit
      0
  2. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour,

    Voici un exemple avec un graphique avec courbes. Pour une proposition avec nuage de points, il faudrait voir comment est construit le tableau de valeurs ainsi que le graphique. En attendant vous pouvez vous inspirer de ceci.
    https://www.cjoint.com/c/HIxdSZRiF0w

    Cdlt
    0
    1. Sunn
       
      Bonjour Frenchie83,

      ça se rapproche de ce que je cherche mais je ne comprends pas la formule utilisé, ou le procédé pour y parvenir.
      De plus si l'on suit votre graphique, il faudrait que votre ligne B rouge soit "Grasse" en AA3 et pas en AA4 car la ligne A bleue commence à descendre et donc à être dans le sens opposé à la ligne B en AA3 jusqu'en AA7 (hors la même problème la courbe B rouge est grasse jusqu'en AA6.

      Concrètement dans l'exemple que je donne si dessous :

      https://www.cjoint.com/c/HIxhKRUyMc0

      En page 2 : Il faudrait que ma courbe "Sin A" soit gras du point d'abscisse 6 au point 11, ensuite elle redevient maigre pour redevenir grasse du point 11 au point 25.

      Merci de votre Aide
      0
  3. Frenchie83 Messages postés 2254 Statut Membre 339
     
    RE,
    Voilà, ramené aux valeurs de votre tableau
    Sub Format_Graphique()
        Application.ScreenUpdating = False
        Set ShCalc = Sheets("Calculs")
        Set ShGraph = Sheets("Graphs")
        ShGraph.Select
        ActiveSheet.ChartObjects("Graphique 7").Activate
        ActiveChart.SeriesCollection(2).Select
        For i = 4 To 53
            If ShCalc.Cells(i, "G") > ShCalc.Cells(i - 3, "G") And ShCalc.Cells(i, "I") > ShCalc.Cells(i - 3, "I") Or _
                ShCalc.Cells(i, "G") < ShCalc.Cells(i - 3, "G") And ShCalc.Cells(i, "I") < ShCalc.Cells(i - 3, "I") Then ' A et B montent ou 'A et B descendent ---> Trait fin
                ActiveChart.SeriesCollection(2).Points(i - 3).Border.Weight = xlThin
                
            ElseIf ShCalc.Cells(i, "G") > ShCalc.Cells(i - 3, "G") And ShCalc.Cells(i, "I") < ShCalc.Cells(i - 3, "I") Or _
            ShCalc.Cells(i, "G") < ShCalc.Cells(i - 3, "G") And ShCalc.Cells(i, "I") > ShCalc.Cells(i - 3, "I") Then ' A monte et B descend ou A descend et B monte ---> Trait épais
                ActiveChart.SeriesCollection(2).Points(i - 3).Border.Weight = xlThick
            End If
        Next
    End Sub
    


    Cdlt
    0
    1. Sunn
       
      merci pour votre retour plus que précis, mais savez-vous dans quelle partie d'EXCEL est-il possible de rentrer ce programme, dans quelle menu ou sous partie du menu dois-je aller pour l'insérer car je n'arrive pas mettre en place des règles de mise en forme conditionnelle sur le graphique.
      0
      1. Frenchie83 Messages postés 2254 Statut Membre 339 > Sunn
         
        Bonjour,

        Comme vous l'a déjà dit Raymond, on ne peut pas utiliser de mise en forme conditionnelle sur un graphique. Pour ce que vous voulez faire, on ne peut agir sur les courbes qu'en écrivant un petit bout de programme en langage VBA. Voici donc le fichier avec le programme de modification des courbes inclus, avec sur la feuille "Graphs" des boutons pour jouer sur la forme de la courbe Sin B. Vous pouvez voir le contenu du programme affecté à chaque bouton en appuyant simultanément sur les touches ALT et F11.
        https://www.cjoint.com/c/HIydu5IJl6w

        Cdlt
        0
    2. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
       
      Sunn, il faut essayer de t'approprier les réponses que l'on te donne !
      Je t'ai indiqué, d'entrée de jeu, que ce que tu demandes est impossible.
      A la place de ton idée de mise en forme conditionnelle, je t'ai suggéré d'attendre une macro.
      C'est fait, Frenchie83 t'en a concocté une.
      Et tu récidives en sollicitant des règles de mise en forme conditionnelle !

      Renseigne-toi plutôt sur les macros : à quoi elles servent, comment on les écrit, à quel endroit on les stocke, comment on les déclenche ...
      Et par pitié, oublie la mise en forme conditionnelle ; elle ne fonctionne pas ici !
      0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour à tous les trois

    Une autre solution qui travaille directement sur les données source du graphique
    https://www.cjoint.com/c/HIxp4tuyk1B

    Cdlmnt
    0