IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Mise à jour automatique d’une barre d’erreur horizontale [XL-2013]


Sujet :

Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 680
    Points : 148
    Points
    148
    Par défaut Mise à jour automatique d’une barre d’erreur horizontale
    Bonjour à tous,
    J’ai un graphique avec 5 courbes, qui se mettent à jour automatiquement avec la saisie journalière des données.
    Autrement dit, l’axe horizontal se renseigne automatiquement au fur et à mesure que je remplis le tableau des données.
    Sur l’axe horizontal, j’ai les jours ouvrés d’une année.
    Sur l’axe vertical, j’ai des nombres, qui varient de 80 à 120. Comme il s’agit en réalité d’une échelle sur un index d’une valeur 100, je souhaiterai placer une barre d’erreur horizontal au niveau du point 100 et parallèle à l’axe horizontal.
    Cette barre d’erreur horizontale facilite la lecture du graphique en indiquant clairement la base 100 sur la totalité du graphique.
    Problème : Je souhaiterai que cette barre d’erreur soit dynamique, comme le restant du graphique en se mettant à jour automatiquement au fur et à mesure de la saisie des données.
    Pour la mise à jour automatique des 5 courbes du graphique, j’ai défini 6 noms à l’aide de la fonction DECALER (5 pour les 5 courbes et une pour les dates) du genre suivant :
    COURBE1=DECALER('Base de données'!$D$7;0;0;NB.SI('Base de données'!$D$7:$D$262;"<>0"))
    Les données vont de la ligne 7 à la ligne 262.
    Les cellules du tableau sont issues d’une formule.
    Suite à cette formule, les cellules non renseignées contiennent la valeur zéro.
    « <>0 » : Permet donc de sélectionner pour la construction des courbes que les valeurs différentes de « 0 ».
    Pour construire le graphique, les valeurs de la série de la COURBE 1 sont définies de la sorte :
    =Graphique.xlsx!COURBE1
    Pour tracer la barre d’erreur horizontale, j’ai créé une septième série avec un seul point (la valeur « 100 » placée dans la cellule Y7 du tableau de données).
    Ensuite, j’ai sélectionné ce point sur le graphique, puis changer le graphique « Courbe avec marques » en un « Nuages de points XY ».
    J’ai annulé la barre d’erreur verticale.
    Puis, j’ai formaté la barre d’erreur horizontale :
    Orientation : Positive
    Style final : Sans empattement
    Marge d’erreur personnalisée avec :
    Valeur d’erreur positive : ={260}
    Ces « 260 » correspondent aux 260 jours ouvrés d’une année.
    Valeur d’erreur négative : ={1}
    Que faut-il indiquer en valeur positive pour que la barre d’erreur horizontale se mette à jour automatiquement au fur et à mesure de l’élaboration du graphique ?
    J’espère avec été clair malgré mes longues explications.
    D’avance, merci pour vos réponses.
    Bonne fin de journée.
    bolide7

  2. #2
    Membre régulier Avatar de Efgé2
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Points : 76
    Points
    76
    Par défaut
    Bonjour bolide7

    Dans les Marge d’erreur personnalisée tu peux définir une cellule comme source et donc utiliser une formule.

    Cordialement

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 680
    Points : 148
    Points
    148
    Par défaut
    Bonjour Efgé2,
    Merci beaucoup.
    Tu confirmes ce que je pensais, c'est à dire qu'à partir d'une cellule, on peut mettre une barre d'erreur horizontale, qui se mette à jour automatiquement.
    Etant à la recherche de la formule qu'il faut notifier dans la personnalisation de cette barre d'erreur, le problème reste donc posé.
    Bonne journée.
    bolide7

  4. #4
    Membre régulier Avatar de Efgé2
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Points : 76
    Points
    76
    Par défaut
    Je crois qu'il y a confusion.
    Dans la zone de personalisation de la barre d'erreur tu mets l'adresse d'une cellule, pas une formule.
    C'est dans la cellule de la feuille que tu mets ta fonction:
    =NB.SI('Base de données'!$D$7:$D$262;"<>0")

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 680
    Points : 148
    Points
    148
    Par défaut
    Rebonjour Efgé2,
    Vu mes connaissances en EXCEL, il est fort possible qu’il y ait confusion.
    Cependant 2 remarques :
    Premièrement, en D2262, j’ai les données, qui permettent de construire la courbe1 du graphique.
    Deuxièmement, si je supprime la valeur contenue dans la cellule Y7 (en l’occurrence la valeur 100), où va se positionner la barre d’erreur horizontale sur mon graphique ?
    Je me suis peut-être mal exprimé, mais je souhaite :
    - Que cette ligne horizontale soit toujours positionnée au niveau de la base 100 (au niveau du 100 de l’axe des ordonnées).
    - Que la longueur de cette ligne horizontale s’allonge au fur et à mesure que le graphique se met à jour.
    Bon après-midi.
    bolide7

  6. #6
    Membre régulier Avatar de Efgé2
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Points : 76
    Points
    76
    Par défaut
    En me basant sur tes indications, voici un exemple
    Regarde bien la formule en Y8 et la façon dont est définie la barre positive.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 680
    Points : 148
    Points
    148
    Par défaut
    C’est encore moi.
    Je n’avais pas compris et surtout mal lu ton précédent message.
    Je pensais que tu évoquais la cellule Y7, alors que tu parlais « d’une cellule ».
    En résumé, je laisse la valeur « 100 » dans la cellule Y7 et dans la cellule Y8, je mets ta formule.
    Et, miracle, ça marche, je devrais plutôt dire ça marche presque, car je découvre un nouveau problème.
    Mon tableau de données ne concerne que les jours ouvrés (comme il n’y a pas de données les week-ends et les jours fériés, il n’y a pas de ligne dans le tableau pour ces jours).
    Par contre, je découvre que l’axe des abscisses du graphique d’EXCEL indique ces dates correspondant à ces jours (samedis, dimanches et jours fériés), qui ne figurent pourtant pas dans le tableau.
    Autrement dit, même s’il n’y a pas de donné pour les week-ends, ces jours figurent sur l’axe horizontal du graphique.
    Cela se traduit sur les courbes par un double espace entre les marques des courbes du vendredi et du lundi.
    En conséquence, lorsque la cellule Y8 indique 100 (comme 100 jours ouvrés pour 100 données), la barre d’erreur transforme cette donnée en 100 jours calendaires.
    Ainsi, la longueur cette ligne horizontale ne couvre qu’une partie de la largeur du graphique (pour 100 données, la barre d’erreur ne va qu’au 10/04/05 au lieu du 21/05/15.
    J’ai donc modifié les caractéristiques de l’axe horizontal : Dans « Type d’axe », j’ai mis « Texte sur les axes » au lieu de « Sélection automatique selon les données ».
    Si cela fonctionne très bien sur un petit graphique test que j’ai fait, cela ne fonctionne pas sur mon graphique (toutes les courbes du graphique et les dates de l’axe des abscisses se retrouvent à gauche sur l’axe des ordonnées). Certainement, à cause de la mise à jour automatique des courbes et des noms définis utilisant la fonction DECALER.
    Alors comment résoudre ce nouveau problème ?
    D’avance, merci beaucoup pour ton aide.
    bolide7

  8. #8
    Membre régulier Avatar de Efgé2
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Points : 76
    Points
    76
    Par défaut
    Comment as tu défini l'axe des dates ?
    Il faut utiliser une plage nommée (avec décaler comme pour les valeurs des séries) et surtout que toutes les séries utilisent la mêm plage de date (sauf bien-sûr la série de limite 100)

    Si ce n'est pas cela, je ne pourrais pas aller plus loin sans un petit exemple représentatif du problème.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 680
    Points : 148
    Points
    148
    Par défaut
    La plage nommée « DATE » a été définie de la même façon que les plages des différentes courbes :
    =DECALER('Base de données'!$A$7;0;0;NB.SI('Base de données'!$A$7:$A$262;"<>0"))
    Cette plage étant préremplie, elle ne contient pas de valeur « 0 », mais que des dates.
    Ainsi, lorsque dans le gestionnaire des noms, on clique dessus, cela fait référence à la totalité des cellules de A7 à A262 (contrairement aux plages des courbes, qui font référence seulement aux cellules renseignées).
    Par ailleurs, sur le graphique, dans « Sélectionner la source de donnée », en face de toutes les séries (y compris la série de limite 100) j’ai les mêmes « Etiquettes de l’axe horizontal (abscisse) » c’est-à-dire :
    =Essai.xlsx!DATE
    Bien évidemment, « Essai » est le nom du classeur.
    Réflexion personnelle : Comme il n’y a qu’une valeur sur cette série de limite 100, la cellule Y7, ne faut-il pas modifier les « Etiquettes de l’axe horizontale (abscisse) » pour cette série de limite 100 ?

  10. #10
    Membre régulier Avatar de Efgé2
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Points : 76
    Points
    76
    Par défaut
    Je pense que ton erreur viens de la plage Date.
    Tu utilises
    NB.SI('Base de données'!$A$7:$A$262;"<>0")

    Alors qu'il faut avoir le même nombre de date que de données.
    Donc remplace cette partie par
    NB.SI('Base de données'!$D$7:$D$262;"<>0")

    C'est le nombre de données supérieures à 0 qui est important.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 680
    Points : 148
    Points
    148
    Par défaut
    Je n'ai pas compris ta remarque.
    En effet, les dates sont en colonne A et non D.
    Si, dans la formule, qui définit la plage "DATE", je remplace A par D, je n'aurai plus les dates dans la plage "DATE".

  12. #12
    Membre régulier Avatar de Efgé2
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Points : 76
    Points
    76
    Par défaut
    Je pense que tu n'as pas compris la formule...
    Il te faut calculer le nombre de dates nécessaires par rapport au valeurs remplies.
    Donc, si ta plage est calculée sur la colonne D il faut conserver ce calcul pour les dates.

    A tu au moins essayé ma proposition?

    Ta plage Date doit avoir comme formule
    =DECALER('Base de données'!$A$7;0;0;NB.SI('Base de données'!$D$7:$D$262;"<>0"))

    Ce qui veux dire:
    En partant de la cellule A7,sans décalage de ligne, sans décalage de colonne (donc colonne A); sur un nombre de lignes égal au nombre de chiffres >0 présent en colonne D.

    Fait des tests.....

  13. #13
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,


    Citation Envoyé par Efgé2 Voir le message
    Je pense que tu n'as pas compris la formule...
    Ce ne serait pas la première fois


    A tu au moins essayé ma proposition?
    C'est plus probable que ce soit non.


    Fait des tests.....
    Ça c'est au-dessus de ses forces. Lui, sa manie, c'est de venir ici et d'asticoter tant qu'on ne lui a pas tout fourni SA réponse clef en main. C'est pour cela que les habitués ne lui répondent pas

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 680
    Points : 148
    Points
    148
    Par défaut
    Bonsoir Efgé2,
    Contrairement aux propos de certains forumeurs, qui écrivent n’importe quoi, j’ai fait de nombreuses tentatives sans succès durant une bonne partie de l’après-midi.
    Si tous les forumeurs étaient aussi bons en EXCEL que certains forumeurs sont mauvaises langues, il n’y aurait pas besoin de ce forum.
    Je ne pense pas que cela soit une tare d’essayer de comprendre ce que l’on fait et d’admettre que l’on n’a pas compris.
    Mais ne nous laissons pas distraire par ces forumeurs et revenons à notre préoccupation du moment.
    J’ai fait un petit fichier, dans lequel j’ai appliqué tes conseils, que j’ai pu comprendre grâce à tes explications et pour lesquelles je te remercie.
    On y retrouve le problème évoqué dans mon post de 15 h 25.
    Si, sur le graphique du fichier joint, on modifie les caractéristiques de l’axe horizontal : Dans « Type d’axe », on met « Texte sur les axes » au lieu de « Sélection automatique selon les données », on obtient un graphique aberrant (la courbe du graphique et les dates de l’axe des abscisses se retrouvent à gauche sur l’axe des ordonnées).
    Comment donc supprimer les dates inutiles sur l’axe des abscisses ?
    Autrement dit, comment faire en sorte que l’axe des abscisses ne reprenne que les jours ouvrés ?
    Très bonne nuit.
    bolide7
    Fichiers attachés Fichiers attachés

  15. #15
    Membre régulier Avatar de Efgé2
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Points : 76
    Points
    76
    Par défaut
    Bonjour bolide7, Bonjour clementmarcotte

    @clementmarcotte
    Si bolide7 apprend au moins un truc dans cette conversation, c'est que le temps passé n'aura pas été inutile

    @ bolide7
    Je crois que tu ne lis pas bien mes messages...
    Au Post8 j'avais précisé :
    Citation Envoyé par Efgé2 Voir le message
    Il faut utiliser une plage nommée (avec décaler comme pour les valeurs des séries) et surtout que toutes les séries utilisent la mêm plage de date (sauf bien-sûr la série de limite 100)
    Donc, l'axe X de la série "100" doit être ={1} et non pas la plage Date.
    Le pasage de l'axe en "Texte sur les axes" ne pose aucun souci.

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 680
    Points : 148
    Points
    148
    Par défaut
    Bonjour Efgé2,
    J’aurai aimé pouvoir te dire que mon graphique était terminé, mais c’est loin d’être le cas.
    Après 3 heures de tentatives dans tous les sens, mon incompétence m’oblige à revenir sur ce forum.
    En effet, dans « Sélectionner la source de donnée », l’inscription de ={1} pour la date correspondant à la série limite à 100 modifie les « Etiquettes de l’axe horizontal (abscisse) » de toutes les courbes.
    Cela se traduit sur le graphique par la disparition des dates au profit de la seule inscription 1 au début de l’axe des abscisses.
    Bonne après-midi.
    bolide7

  17. #17
    Membre régulier Avatar de Efgé2
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Points : 76
    Points
    76
    Par défaut
    Je ne sais plus quoi te dire...
    SI en créant ton point 100, tu as bien modifié le type de graphique de ce point en utilisant "nuage de point", il ne doit pas y avoir de problème.
    Un dernier exemple complet.
    Fichiers attachés Fichiers attachés

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 680
    Points : 148
    Points
    148
    Par défaut
    Avec toutes mes tentatives, j’ai l’impression de tourner en rond pour déboucher toujours sur la même chose, une impasse.
    Il est possible que je ne fasse pas les choses dans le bon ordre ou de la bonne manière.
    C’est peut-être dans ma façon de rajouter le point de la série limite à 100, qui pose éventuellement problème.
    Voilà ma méthode, qui n’est manifestement pas la bonne :
    Dans « Sélectionner la source de donnée », je clique « Ajouter », puis je ne renseigne pas le « Nom de la série » (je ne veux pas que cette série, cette base 100, apparaisse dans la légende), puis dans « Valeurs de la série », je sélectionne la cellule Y7, qui contient la valeur 100.
    Puis OK.
    Dans les « Etiquettes de l’axe horizontal (abscisse) », j’ai alors non pas une série de dates, mais une série de nombres (1, 2, 3, 4, 5, etc.).
    Dans les « Etiquettes de l’axe horizontal (abscisse) », je clique sur « Modifier », et dans « Plage des étiquettes des axes », j’indique : ={1}.
    Puis OK.
    A la place de la série de nombres, il apparaît bien ce 1.
    Problème, la série de dates a disparu pour les autres séries, au profit de ce 1.
    Existe-il une autre façon pour intégrer ce point dans le graphique ?
    D’avance, merci beaucoup.

  19. #19
    Membre régulier Avatar de Efgé2
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Points : 76
    Points
    76
    Par défaut
    Tu oublis juste le plus important que j'ai évoqué précédemment.

    Il faut selectionner ton point de la série 100 / clic droit / Modifer le type de graphioque série de données / choisir "NUAGE DE POINT"
    Tu auras ce que j'ai fait au post précédent........

    Dans mon dernier exemple, si tu utlise le bouton "Selectionner des données" et que tu choisi la série 2 (la série du 100) tu verras que tu as tout à fait autre chose comme possibilités qu'avec la série des valeurs.

    Après, à part venir le faire sur ton P.C je ne vois plus.

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 680
    Points : 148
    Points
    148
    Par défaut
    Je ne l’avais pas précisé, le changement de type de graphique je le fais après l’ajout de la série limite à 100, en sélectionnant le point 100.
    Mon problème, c’est que sur le graphique toutes mes dates ont disparues de l’axe des abscisses au profit de ce fameux 1.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Mise à jour automatique de la barre d'outil après action sur un bouton
    Par anis gaied dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/10/2011, 15h53
  2. [VB6] Code pour Mise à jour automatique
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 45
    Dernier message: 10/02/2006, 18h05
  3. mise à jour automatique de champs entre 2 tables
    Par romdyane dans le forum Access
    Réponses: 5
    Dernier message: 11/10/2005, 18h51
  4. système de mise à jour automatique
    Par eponette dans le forum Web & réseau
    Réponses: 2
    Dernier message: 24/08/2005, 20h17
  5. Mise à jour automatique d'un JTextAera
    Par Vlakyron dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 25/09/2004, 20h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo