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

Macros et VBA Excel Discussion :

Petit graphique simple dans une cellule [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut Petit graphique simple dans une cellule
    Bonjour a tous et toutes, forum bonjour,

    Je cherche SVP a faire simplement un petit graphique dans une cellule afin de suivre et d'afficher chaque jour la montée ou la descente d'une valeur positive ou négative d'une action boursière.

    Ex: Dans une cellule (B2) fixe j'entre une valeur (en euros) chaque jour qui varie, donc la cellule (C2) a coté avec un trait fin rouge quand (négatif) ou vert quand (positif) s'affichant dans la cellule.

    Si quelqu'un sait faire ce genre de code en vba, je suis preneur avec un grand merci bien sur.

    Bonne fin d'après midi a vous et merci de votre temps.

    Raymond

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 48
    Par défaut
    Salut,
    Tu auras du mal a faire un graphique dans une cellule, Ce nest pas son attribution.

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut a tous

    Merci de ta réponse mais c'est tout fait possible j'en ai manipuler quelque uns
    mais je n'arrive plus a remettre la main dessus, mais je te confirme que c'est tout a fait possible.

    merci et bonne soirée

    Raymond

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 48
    Par défaut
    Je surveille ta question, car je serais interressé de savoir ça, vu que j'ai mis un mois pour mettre un logiciel boursier au point ( je ne parles pas là d'un jouet pour les gosses). a+

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Vu que tu es sous Excel 2007, as-tu essayé avec la MFC, tu as des jeux d'icônes qui devraient te permettre de réaliser cela.

    Philippe

  6. #6
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut et merci a tous, j'ai retrouver ce que j'avais vu

    Il suffit de taper Tracer un mini graphique dans une cellule dans Google > premier lien renvoyé

    moi ce ptit truc me suffira enfin si j'arrive a l'integrer a mon programme

    bonne soirée

    Raymond

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Le fichier que vous aviez adressé avec une de vos précédentes réponses ne fonctionnait pas sur Excel 2007 mais sur 2000 et sans doute jusqu'à 2003.

    Celui-ci fonctionne en principe sur 2007 mais à vérifier car je l'ai modifié en version 2000.

    Ici dès que vous modifiez la cellule "E22" l'historique sur les 5 derniers jours se met à jour en "J2:J6" (on peut bien sûr prévoir plus ou moins de 5 jours) et le graphique contenu dans la cellule "C22" est mis à jour.

    Vous pourrez copier la formule et la coller ailleurs et bien évidemment modifier la plage et vous pourrez l'utiliser comme vous l'avez écrit :

    Pour le code il faudrait que je puisse changer moi-même les données suivantes positionner le graphe ou bon me semble car si ça marche je m'en servirai sûrement pour des lignes au dessus
    car je pense, d'après ce que vous écrivez, en ce qui vous concerne, ce graphique n'a rien à faire en "C22" puisque vous n'avez qu'une donnée à utiliser.

    Remarque :

    1) il faudra modifier, si vous en avez besoin la procédure incluse dans la feuille "Feuil1" (modifier la valeur des variables indiquées en début de procédure).

    2) la fonction est prévue pour utiliser une plage de cellules consécutives soit en ligne (mais une seule ligne) soit en colonne (mais une seule colonne)

    3) si vous voulez un graphique du type "histogramme" vous pouvez modifier la fonction (pour afficher la formule il faut sélectionner la cellule "C22" lorsque le curseur est représenté par la croix blanche et non la croix noir, qui elle sélectionne l'image):
    en
    En ce qui concerne la flèche indiquant la tendance en "D22" la formule actuelle est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(PENTE(J2:J6;LIGNE(J2:J6))>0;CAR(242);SI(PENTE(J2:J6;LIGNE(J2:J6))<0;CAR(241);CAR(243)))
    elle peut bien évidemment être modifiée de pas mal d'autres façons, par exemple pour comparer la dernière valeur à la moyenne des valeurs précédentes.

    Mais en ce qui vous concerne, toujours pour la même raison, vous n'avez qu'une valeur qui, si j'ai bien compris, représente un gain ou une perte, vous pourriez utiliser cette formule (j'ai mis un exemple en "C27") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(E22>0;CAR(241);SI(E22<0;CAR(242);CAR(243)))
    Remarque :

    1) pour ces formules en "C22" et "C27" regardez la mise en forme conditionnelle.

    2) pour les cellules concernées vous devez sélectionner la police Wingdings.
    Fichiers attachés Fichiers attachés

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Un ajout qui m'a été demandé.
    A partir de la fonction "LineChart" contenue dans le fichier joint à la réponse ci-dessus, chaque partie du graphique sera de couleur verte s'il y a progression par rapport à la valeur précédente (ou écart = 0) et de couleur rouge dans l'autre cas.
    Pour voir un peu mieux chacune des parties (plusieurs dans le même sens) la 1ère sera représentée par des points, la 2ème par un trait etc..

    Le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Function LineChart(Points As Range)
    Const KMg = 2, KTag = "Line"
    Dim Ptsc$, Ptsp$, nom$, Ref As Range, ShRg(), Bcle&, Cnt&: Dim Min#, Max#, Pts, Lg#, Ht#
    On Error Resume Next
    With Points
    If .Rows.Count > 1 And .Columns.Count > 1 Then
    LineChart = CVErr(xlErrValue): Exit Function
    End If
    Pts = .Value: Cnt = .Count
    ReDim ShRg(1 To Cnt - 1)
    If .Columns.Count > 1 Then Pts = WorksheetFunction.Transpose(Pts)
    End With
     
    Set Ref = Application.Caller
    With Ref
    .Worksheet.Shapes(KTag & .Address).Delete
    Min = WorksheetFunction.Min(Pts)
    Max = WorksheetFunction.Max(Pts)
    Lg = (.Width - (KMg * 2)) / (Cnt - 1)
    Ht = (.Height - (KMg * 2)) / (Max - Min)
     
    Ptsp = Cells(2, 10).Value
     
    For Bcle = 1 To Cnt - 1
    With .Worksheet.Shapes.AddLine( _
    KMg + .Left + Lg * (Bcle - 1), _
    KMg + .Top + (Max - Pts(Bcle, 1)) * Ht, _
    KMg + .Left + Lg * Bcle, _
    KMg + .Top + (Max - Pts(Bcle + 1, 1)) * Ht)
    ShRg(Bcle) = .Name
    nom = ShRg(Bcle)
     
    Ptsc = Pts(Bcle + 1, 1)
    ActiveSheet.Shapes(nom).Select
    Selection.ShapeRange.Line.Weight = 2#
            If Ptsc < Ptsp Then
            Selection.ShapeRange.Line.ForeColor.SchemeColor = 2
            Else
            Selection.ShapeRange.Line.ForeColor.SchemeColor = 3
            End If
     
            If Bcle Mod 2 <> 0 Then
            Selection.ShapeRange.Line.DashStyle = msoLineRoundDot
            End If
    Ptsp = Ptsc
     
    ShRg(Bcle) = .Name
    End With
    Next Bcle
     
    With .Worksheet.Shapes.Range(ShRg)
    .Group
    .Name = KTag & Ref.Address
    End With
    End With
    LineChart = ""
    End Function
    Le code sur la feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Option Explicit
    Dim i%, lgnval%, colval As Byte, plgnhist%, dlgnhist%, colhist As Byte, myval!
    Sub worksheet_change(ByVal target As Range)
    'N° de la ligne contenant la valeur (vous pouvez modifier)
    lgnval = 22
    'N° de la colonne contenant la valeur (vous pouvez modifier)
    colval = 5
    'N° de la 1ère ligne contenant l'historique (vous pouvez modifier)
    plgnhist = 2
    'N° de la dernière ligne contenant l'historique (vous pouvez modifier)
    dlgnhist = 6
    'N° de la colonne contenant l'historique (vous pouvez modifier)
    colhist = 10
     
         If target.Column = colval And target.Row = lgnval Then
         myval = Cells(lgnval, colval).Value
     
            If IsNull(myval) Then
            MsgBox "Vous n'avez pas entré de valeur !"
            Exit Sub
            End If
                For i = plgnhist To dlgnhist - 1
                Cells(i, colhist).Value = Cells(i + 1, colhist).Value
                Next
        Cells(dlgnhist, colhist).Value = myval
        End If
     
    End Sub
    Il suffit donc de mettre cette formule par exemple en "C22" :

    de créer l'historique, toujours par exemple, des 5 valeurs et de "J2 à J6"
    et à chaque modification de de la valeur en "E22" l'historique se mettra à jour et le graphique sera réinitialisé.

    On peut aussi modifier directement une ou plusieurs valeur(s) dans l'historique (dans ce cas pas besoin de la procédure évènementielle sur la feuille).

  9. #9
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Bonjour a toutes et tous, forum bonjour

    Bonjour Jacques Jean,

    Merci d'avoir apporter une réponse au sujet de ce fil, je l'ai charger et en ai fait l'essai, ca fonctionne bien reste a étudier le code pour comprendre comment ca marche, reviens si soucis.

    suis un peu tardif sur la réponse désoler, du a un probleme avec mon antivirus
    Félicitations pour le code.

    Bonne fin d'après midi a tous

    Raymond

  10. #10
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut Mini graphique dans une cellule
    Bonsoir a toutes et tous, bonsoir forum

    Mon programme étant quasiment terminé, j'aurai bien voulu rajouter ce genre de graphisme afin de suivre une valeur que j'entrerai chaque jour.

    j'ai trouver ce petit fichier et je souhaiterai SVP faire fonctionner, je n'y arrive pas mais vous surement, regarder plutot si ca peut interresser quelqu'un et moi aussi par la mème occasion.

    Si quelqu'un peut faire fonctionner avec d'autres valeurs, alors je suis preneur

    Merci d'avance a vous et de votre temps, et la bonne soirée a vous.

    Raymond

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 48
    Par défaut
    Salut,
    Content pour toi, mais je ne comprend pas ce que veux, aparement cela fonctionne bien.

  12. #12
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Bonjour a toutes et tous, forum bonjour

    Bonjour CRACOS38,

    Merci pour ta réponse c'est sympa, sur mon excel 2007 il me colle l'erreur #Valeur! j'ai regarder pour palier a cette erreur, mais je ne trouve pas.

    Ce que je souhaiterai, c'est faire un petit graphisme dans une cellule pour suivre tous les jours l'évolution de ma petite action.

    J'entre donc une valeur tous les jours dans une mème cellule (D4) et en (E4)
    avoir le suivi.

    la sur le fichier joint ce ne sont que des petits chiffres comment modifier pour suivre dans une fourchette au pif comme ca entre 3000 et 7000 par Ex tout en restant assez précis.

    Merci de ton attention, je voudrai arriver a faire ceci car ensuite je pourrai reprendre si ca marche pour autre chose

    Bon W-end et encore merci

    Raymond

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 48
    Par défaut
    Salut eliot,
    Tu n'as pas trop fait de cauchemards, au moins?
    J'ai regardé ton bazard.(clin d'oeil) A mon très humble avis de misérable cafard, (encore?), je pense que ton problème vient que tes cellules ont conservées la mémoire de leur 1ere mise en forme. Met une valeur, par ex : 20000, et selectionne : cellule\mise en fome de la cellule\format du nombre: par ex : avec 2 decimales\ entrée, tuverra que ta cellule affiche : 20000/00.
    En plus son format pourrait passer en débordement.

    Petite apparté, sait tu ce qu'est un tuyau en bourse?
    C'est un tube, creux, à l'intérieur, dedans, par lequel, d'un côté un gros malin souffle très fort et où, de l'autre côté un gros couillon en prend plein la gueule.
    (A méditer...° ° ° °

  14. #14
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut CRACOS38,

    Merci d'avoir regarder mon bazard, non pas fait trop de cauchemars, mais j'ai suivi tes conseils et ca ne marche pas toujours cette erreur #valeur! peut etre du a excel 2007
    comme valeur mis 500 le petit trait bouge mais je comprends pas bien comment ca marche, je refait un essai cette apres midi

    sinon je lache tomber, pour le petit apparté, pas eu le choix imposé par le big boss,
    mais je rève pas je sais très bien que ca marche pas comme les artichauts, tu en as plus dans ton assiette quand tu as fini que quand tu as commencé

    en tout cas merci, ca t'a été utile toi ce petit code, sinon peut on faire autrement pour arriver au mème résultat en vba.

    Merci a plus tard bonne après midi

    Raymond

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je ne comprends pas très bien ce que vous voulez faire précisément et donc pourquoi vous avez besoin de VBA.

    J'entre donc une valeur tous les jours dans une mème cellule (D4) et en (E4) avoir le suivi.
    Je suppose que vous voulez dire :

    J'entre donc une valeur tous les jours dans une même cellule (D4) et en (E4) je veux avoir l'évolution sous forme de graphique.

    Si c'est bien cela :

    -pour représenter l'évolution il faut donc 2 valeurs. La nouvelle est entrée en D4 et où se trouve la précédente ?
    -vous voulez que cette valeur précédente prenne la valeur de D4 dès que vous mettez à jour D4 ?
    -vous ne voulez pas faire apparaître la valeur précédente mais qu'elle soit affectée à une variable dès la mise à jour de la nouvelle valeur et donc de manière a pouvoir calculer l'évolution ?

    Eventuellement donnez un exemple de ce que vous voulez.

    Ensuite il suffira de modifier la fonction pour l'adapter à votre cas et peut-être ajouter quelques lignes de code.

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 48
    Par défaut
    Resalut,
    Moi je reste sur les graphiques. Je trouve ça beacoup plus pratique. J'en ai fait
    des micros qui arrivent à des résultats bien meilleurs, enfin a mon avis, si ça t'interresse je peut te faire passer plein de petits trucs. J'ai sans doute quelque chose, qui rejoint ce que je suppose que tu veut faire, comme des résumés de cours de valeurs.(j'en sort environ 700 sur quelques feuilles, que je peux coupler à la demande, bollingers, force relative, mma ou autres....), mais dans ce cas, je te passerai tout ça de façon plus directe.
    Je reste à l'écoute

    Resalut,
    Je viens de me rendre compte que l'ouverture de ton fichier avait apparement "polluer3 mon Excel.
    J'ai résolu le probleme, mais chose curieuse , bien que dans les options Excel\options avancéés\la case "utiliser les séparateurs systeme" n'étant pas cochée" excel me prenait quand même en compte les séparations de milliers et décimales qui comportaient "/" et "µ" ; J'ai modifié ces cases et sans toucher à la case "utiliser les séparateurs systeme" le probleme à disparu. Vérifie sur ta machine ! Vous avez dit "Bizzare"

  17. #17
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut

    Je viens de vérifier tes dires sur mon pc, rien a signaler,
    j'ai installer depuis peu mon excel 2007 OFFICIEL version office online venant de la fnac et sous vista et avec anti virus OFFICIEL egalement

    et a la fin de l'installation d'excel j'ai eu droit a une mise a jour d'excel d'enfer
    mais cela fonctionne bien chez moi

    mais je regarde aussi des codes dès que ca m'interresse alors peut un programme m'aurai occasionner le souci dont tu parles et a l'instant tout est ok chez moi

    j'espere que cela ne se reproduira pas tu m'en voit désoler

    A plus tard, vois ta messagerie MP

    Raymond

    Citation Envoyé par Philippe JOCHMANS Voir le message
    Bonjour

    Vu que tu es sous Excel 2007, as-tu essayé avec la MFC, tu as des jeux d'icônes qui devraient te permettre de réaliser cela.

    Philippe
    Bonjour Philippe

    non je n'ai pas essayer ce que tu me propose, je connais un peu la MFC mais dans un premier temps je souhaite vois si possible en vba

    merci pour ton intéret a ma question peut etre j'y viendrai

    bon dimanche ici a Rouen il pleut

    Raymond

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Graphique dans une cellule de JTable
    Par Yann_69 dans le forum Composants
    Réponses: 6
    Dernier message: 22/11/2012, 17h18
  2. focus dans une cellule d'une JTable
    Par coil dans le forum Composants
    Réponses: 5
    Dernier message: 07/07/2010, 17h15
  3. inserer graphique dans une cellule
    Par veer2006 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/07/2007, 16h08
  4. Réponses: 3
    Dernier message: 01/12/2003, 13h14
  5. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18

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