Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 À propos d'une courbe. Comment diable s'y sont-ils bien pris ?

Magic_Doctor

XLDnaute Barbatruc
Bonsoir,

Je tombe sur cet article. Ce n'est pas l'article en soi qui est intéressant, mais la 1ère courbe qu'il présente.
Je pense que ce doit être reproductible avec Excel. Personnellement, j'en suis incapable.

Il faut aller ici
 

Magic_Doctor

XLDnaute Barbatruc
Re,

Ben non ! et je ne suis pas le seul !
Manque de curiosité...

Amigo mimanzana, muchas gracias pour ce lien. Dommage que ce soit en nuage de points, mais en potassant...
En conséquence, même si ce n'est pas dans le langage qu'utilise Le Monde, parangon de l'information objective et irréfutable, avec Excel on peut s'approcher du même résultat.

Hola job & bonne journée à tous.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour job75, le fil, (salut jean marie)

tu as écrit : « sur un graphique Excel le survol de la souris crée l'évènement MouseMove. »

je vois que par moment, tu n'hésites pas à copier mes explications vaseuses !

(voir le lien de mon post #8 de ce matin à 12:24, puis édité à 12:40)



merci quand même pour avoir confirmé que mes posts ne sont pas toujours aussi ineptes que tu le dis !

j'espère aussi que tu ne vas pas prétendre que c'est moi qui ai copié sur toi.

soan
 

job75

XLDnaute Barbatruc
Un exemple de ce que l'on peut faire sur une feuille graphique :
VB:
Private Sub Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
On Error Resume Next
With Sheets("Base")
    .[C2:C3] = IIf(x < 38 Or x > 828, "#N/A", .Range("A" & Round(2 + 300 * (x - 38) / (828 - 38))))
    SeriesCollection(2).Points(2).DataLabel.Caption = Format(.Range("B" & Round(2 + 300 * (x - 38) / (828 - 38))), "0.000")
End With
End Sub
Le graphique doit être sélectionné pour que la macro s'exécute.

Mots clés pour retrouver ce message : survol graphique

Bonne nuit.
 

Pièces jointes

  • Survol graphique(1).xlsm
    41.3 KB · Affichages: 16
Dernière édition:
Bonjour à tous

Dans la communication, il y a en principe un émetteur avec un ou des récepteurs. Si le ou les récepteurs ne comprennent pas le message, le problème vient toujours de l'émetteur !
Soit parce qu'il n'est pas assez clair dans ses explications, soit parce qu'il ne sait pas se mettre au niveau de ses interlocuteurs.

Bien cordialement, bonne journée et @+
 

job75

XLDnaute Barbatruc
Bonjour le forum,

Je ne comprends pas qu'on épilogue ainsi.

Magic_Doctor pensait avoir posé le problème clairement c'est tout.

Si ce n'était pas vraiment le cas au post #1 ça l'était en tout cas au post #6.

Et la solution que j'ai proposée au post #21 est assez évidente aussi non ?

A+
 

soan

XLDnaute Barbatruc
Inactif
Bonjour à tous,


euh... si la personne qui est le récepteur est le professeur Tournesol, et qu'il a oublié de brancher son appareil auditif, ça compte ?

en tout cas, je vous trouve bien sévères envers Magic_Doctor :

a) quand il a écrit « Pourtant, ça sautait aux yeux !!! », ce n'était pas pour nous narguer mais juste car il le pensait vraiment ; et il est loin d'être le seul dans ce cas vu qu'il y a de nombreux demandeurs dont la problématique est tellement claire dans leur pensée qu'il ne pensent pas une seconde qu'une autre personne peut ne pas comprendre leur projet ; preuve en est que pour un gros projet, ils oublient d'indiquer où ça se passe : sur quelle feuille ? dans quelles cellules ? dans quel UserForm ? pour quel bouton de ce UserForm ? (ou autre contrôle) ; ils ne pensent pas non plus à indiquer dans quel module et dans quelle sub il faudrait intervenir, même s'il y a plusieurs modules (qui sont parfois très longs, de plusieurs centaines de lignes) ; mais bien sûr, malgré ce que je viens d'indiquer, il n'en reste pas moins que la demande reste floue sans indications complémentaires, et le demandeur est le premier à en pâtir puisque ça retarde la résolution de son exo.

b) de plus, je pense que si Magic_Docteur a écrit sa 2ème réflexion, c'est tout simplement car il avait survolé une courbe du 1er graphique avec son pointeur de souris, que le cartouche est apparu, et que ça lui a tellement plu qu'il a eu envie de le reproduire sur Excel (je comprends très bien ça car s'il peut obtenir le même effet sur un de ces classeurs Excel, l'effet résultant est plutôt assez bluffant ! ça, faut reconnaître que le journal "Le Monde" a fait fort pour soigner ses présentations graphiques !) ; moi-même, j'avais survolé la courbe a un moment donné, et j'avais bien vu le cartouche ; mais comme ça avait été furtif et que le cartouche disparaît dès qu'on ne survole plus la courbe, je n'y avais pas alors prêté attention et j'avais cru que la demande était à propos de l'effet « en dent de scie » du second graphique ; j'ai quand même donné des indications pour les 2 lignes du 1er graphique, à tout hasard, pour Magic_Doctor ou pour un autre lecteur de la conversation ; donc pour moi, la seule faute de Magic_Doctor est de ne pas avoir précisé clairement dès le départ, sur son énoncé, qu'il s'agissait du cartouche qui apparaît quand on survole une courbe du 1er graphique ; ce n'est pas sa 2ème réflexion « Pourtant, ça sautait aux yeux !!! », même si elle peut paraître involontairement blessante.

c) Magic_Doctor a édité son post #9 en ajoutant « Promis, dorénavant je serai plus explicite. » ; ça prouve qu'il a bien « compris la leçon », et je suis sûr que c'est aussi une façon pour lui de s'excuser ; s'il n'a pas supprimé sa 1ère phrase, c'est sans doute car je l'ai mentionnée dans mon post #10 (ainsi que d'autres membres) ; il a dû vouloir « préserver » la lisibilité du fil ; pour toutes ces raisons, je trouve que le dislike de patricktoulon, sur le post #9, est bien injuste ! ça me ferait bien plaisir s'il pouvait l'enlever, pour montrer qu'il peut savoir être clément ; « dans la foulée », patrick pourrait aussi enlever le dislike du post #6, car la phrase « Attendez, les amis, vous êtes sérieux ou quoi ? » signifie tout simplement : « voyons, depuis le temps que j'utilise Excel, je sais très bien comment faire un graphique avec une courbe ou avec un nuage de points, donc ce n'est pas de ça qu'il s'agit ».


je viens de voir le post #27 de job75, et je le remercie pour avoir pris lui aussi la défense de Magic_Doctor ; même si Magic_Doctor postait à nouveau une demande pas suffisamment claire, il ne faudrait quand même pas lui en vouloir ; il faut seulement se rappeler que c'est pas toujours évident pour un demandeur d'exposer son problème ; ou s'il a longtemps travaillé sur son projet, de penser à énoncer ce qui sont pour lui des évidences.


@patricktoulon : d'après ton post #24, heureusement que tu t'es levé de bonne humeur ce matin ; qu'est-ce que ça aurait été, sinon ? j'espère que tu n'as pas oublié de prendre ton café et tes croissants : j'voudrais pas qu'tu deviennes grincheux !



soan
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
non je ne suis pas grincheux du tout
j'estime qu'un demandeur ne sais pas puisqu'il demande
donc quand il dit quelque chose du genre "c'est devant vos yeux", ça me pique les narines
c'est tout ;comme dit @job75 en effet jusqu'au #6 on sait pas de quoi il parle
Mais !! c'est devant nos yeux !!!!!
manque de chance j'ai pété ma boule de cristal c'est ballot!!!
bref il a son étiquette mobile bien que je conseillerais a @job75 de revoir le X car c'est pas bien syncro
chez moi la souris est a peine un peu après le centre que l'étiquette est déjà a droite du chart
 

patricktoulon

XLDnaute Barbatruc
re
pour corriger la version de @job75 il faut prendre en compte le zoom
il faut prendre en compte aussi pour le max le dernier point de la courbe et non le width

autrement dit en zoom 100
on démarre a 55 et non 38 en zoom 100
et on termine a 1120 et non 1187
comme je calcule avec le zoom ca fonctionne pour tout les zoom sans changer les donnée au code

un petit plus serait de variablisiler le 55 et 1120 afin pourquoi pas d'en faire (pourquoi pas)une fonction réutilisable a volonté

VB:
Option Explicit

Private Sub Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
Dim z#
On Error Resume Next
z = ActiveWindow.Zoom / 100
'Application.Caption = x
With Sheets("Base")
    .[C2:C3] = IIf(x < (55 * z) Or x > (1120 * z), "#N/A", .Range("A" & Round(2 + 302 * (x - (55 * z)) / ((1120 * z) - (55 * z)))))
    SeriesCollection(2).Points(2).DataLabel.Caption = Format(.Range("B" & Round(2 + 302 * (x - 38) / (828 - 38))), "0.000")
End With
End Sub
 

job75

XLDnaute Barbatruc
Sur mon exemple les bornes 38 et 828 sont les positions x du 1er et dernier point de la 1ère série.

Je vois qu'ils varient suivant le zoom et la résolution de l'ordi.

Pour les déterminer il suffit d'ajouter MsgBox x dans la macro, je reconnais que c'est besogneux.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…