XL 2010 Mettre des noms sous une courbe en fonction des valeurs

rododom05

XLDnaute Nouveau
Bonjour à toutes et tous.
J'ai une question concernant les graphiques Excel. J'ai une courbe représentant le temps de parcours et la vitesse d'un tramway en fonction de la distance parcourue. Et à chaque fois que la courbe de la vitesse tombe à 0, ça veut dire qu'il y a une fonction. Comment est-ce que je peux faire, sachant que les stations sont référencées, pour faire justement apparaître les noms des stations en-dessous de la courbe quand justement elle tombe à 0 ?
Je joins un petit fichier exemple à ma demande.

En vous remerciant par avance, je vous souhaite d'ores et déjà un bon week-end.

Rod'
 

Pièces jointes

  • Fichier_exemple.xlsx
    810.6 KB · Affichages: 51

Dugenou

XLDnaute Barbatruc
Bonjour,
une possibilité un peu lourdingue mais peut être automatisable par macro : on crée une série pour chaque station et on en affiche l'étiquette. Voir pj

PS : n'y aurait-il pas moyen d'échantillonner les données pour avoir un peu moins de lignes ?
 

Pièces jointes

  • rododom05.xlsx
    811.4 KB · Affichages: 51

rododom05

XLDnaute Nouveau
Bonjour,

Avant toute chose, je vous remercie d'avoir bien voulu prendre mon problème en considération.

Dugenou : non, je ne peux pas vraiment échantillonner, j'ai vraiment besoin d'autant de ligne, j'ai besoin de précision. Mais est-ce que la partie où justement il n'y a que les stations en fonction du Pk n'est pas un échantillonnage exploitable pour ce que je veux faire ?
Comment est-ce que tu automatises la création d'étiquettes ? Et est-ce que du coup, étant donné que ce procédé est voué à être utilisés pour pleins de lignes avec pleins de stations, est-ce qu'une automatisation de la création de séries est envisageable ?

Douguy : ta solution m'intéresse, mais pour une autre application dont j'ai besoin, merci pour cette aide ! :D Néanmoins pour ce que je souhaite là ça correspond moins à ce que je recherche. Ce que je souhaite c'est vraiment que le nom de chaque station apparaisse sous l'axe des x, juste en-dessous des Pk. C'est de l'habillage en fait, mais chaque station se placera au niveau de l'axe, là où il doit être !
 

douguy

XLDnaute Junior
upload_2017-3-24_14-58-52.png

comme ca?
 

job75

XLDnaute Barbatruc
Bonjour rododom05, Dugenou, douguy,

Voyez le fichier joint et la macro du bouton :
Code:
Private Sub CommandButton1_Click()
Dim test As Boolean, t, i&, x As Variant
Application.ScreenUpdating = False
test = CommandButton1.Caption Like "Afficher*"
With ChartObjects(1).Chart
  .SetElement IIf(test, msoElementPrimaryCategoryAxisNone, msoElementPrimaryCategoryAxisShow) 'masque/affiche l'axe
  .Axes(xlCategory).AxisTitle.Text = IIf(test, " ", "Pk (m)") 'masque/affiche le titre de l'axe
  With .SeriesCollection(1)
    .HasDataLabels = False 'RAZ
    If test Then
      t = [B6].CurrentRegion.Resize(, 3) 'B6 à adapter
      For i = 2 To UBound(t)
        If t(i, 3) = 0 Then
          x = Application.VLookup(Round(t(i, 1)), [I6].CurrentRegion, 2, 0) 'RECHERCHEV, I6 à adapter
          If Not IsError(x) Then
            .Points(i - 1).ApplyDataLabels
            .DataLabels(i - 1).Text = x
          End If
        End If
      Next
      With .DataLabels
        .Position = xlLabelPositionBelow
        .Orientation = xlUpward
        .Format.TextFrame2.TextRange.Font.Bold = msoTrue 'gras
      End With
    End If
  End With
End With
CommandButton1.Caption = IIf(test, "Masquer", "Afficher") & " les stations"
End Sub
Nota : en I16 il faut 44 et pas 45...

A+
 

Pièces jointes

  • DataLabels(1).xlsm
    814.4 KB · Affichages: 29
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour rododom05, le forum,

Avec cette version (2) les DataLabels sont placés au-dessus de l'axe horizontal :
Code:
Private Sub CommandButton1_Click()
Dim test As Boolean, t, i&, x As Variant
Application.ScreenUpdating = False
test = CommandButton1.Caption Like "Afficher*"
With ChartObjects(1).Chart.SeriesCollection(1)
  .HasDataLabels = False 'RAZ
  If test Then
    t = [B6].CurrentRegion.Resize(, 3) 'B6 à adapter
    For i = 2 To UBound(t)
      If t(i, 3) = 0 Then
        x = Application.VLookup(Round(t(i, 1)), [I6].CurrentRegion, 2, 0) 'RECHERCHEV, I6 à adapter
        If Not IsError(x) Then
          .Points(i - 1).ApplyDataLabels
          .DataLabels(i - 1).Text = x
        End If
      End If
    Next
    With .DataLabels
      .Position = xlLabelPositionAbove
      .Orientation = xlUpward
      .Format.Fill.ForeColor.RGB = RGB(255, 255, 0) 'jaune
      .Format.TextFrame2.TextRange.Font.Bold = msoTrue 'gras
    End With
  End If
End With
CommandButton1.Caption = IIf(test, "Masquer", "Afficher") & " les stations"
End Sub
A+
 

Pièces jointes

  • DataLabels(2).xlsm
    814.9 KB · Affichages: 32
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour à toutes et tous.
J'ai une question concernant les graphiques Excel. J'ai une courbe représentant le temps de parcours et la vitesse d'un tramway en fonction de la distance parcourue. Et à chaque fois que la courbe de la vitesse tombe à 0, ça veut dire qu'il y a une fonction. Comment est-ce que je peux faire, sachant que les stations sont référencées, pour faire justement apparaître les noms des stations en-dessous de la courbe quand justement elle tombe à 0 ?
Je joins un petit fichier exemple à ma demande.
En vous remerciant par avance, je vous souhaite d'ores et déjà un bon week-end.
Rod'

Quelques réflexions :
- quand la vitesse tombe à zéro cela ne signifie pas nécessairement que le tramway soit arrêté en station ...
- faire correspondre l'affichage d'une station à l'avancement du mobile n'est pas rationnel, les stations sont fixes !
- "ByDesign" les graphiques en nuage de points sont entachés d'un bug qui ne permet pas de façon native au niveau des étiquettes de points l'affichage d'autres choses que les valeurs X, Y et ou nom de série

réponse aux 1er et 2nd point :
utiliser une serie complémentaire pour afficher les stations :
=SERIE("gares";Feuil1!$I$7:$I$16;Feuil1!$J$7:$J$16;1)
réponse au point 3 :
sinon voir ce lien :
upload_2017-3-25_22-33-38.png
 

Pièces jointes

  • Fichier_COSMI RoRo.xlsm
    881.6 KB · Affichages: 43

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 330
Membres
102 862
dernier inscrit
Emma35400