Le Barbatruc de Jam: Un graph dans une cellule.

Jam

XLDnaute Accro
Salut à tous,

Bon je m'y résoud. Voici donc mon Barbatruc.
Je précise tout de suite qu'il n'est PAS de moi (j'ai vraiment pas le temps de développer en ce moment) mais de Rob Van Gelder.
Ce truc donne la possibilité de faire un graph DANS une cellule (testé sous XL2K).
Il faut deux fonctions (elle est dans le zip attaché).
La formule à utiliser est:
=LineChart(plage de référence;couleur)
exemple
=LineChart(A1:J1;203) -> 203 pour du rouge.

Amusez-vous bien et découvrez (si besoin en était) qu'Excel nous réserve chaque fois des surprises surprenantes. Le mérite sur ce coup en revient encore une fois à Rob Van Gelder. [file name=Fonction.zip size=810]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Fonction.zip[/file]
 

Pièces jointes

  • Fonction.zip
    810 bytes · Affichages: 386
  • Fonction.zip
    810 bytes · Affichages: 385
  • Fonction.zip
    810 bytes · Affichages: 381
G

Gérard DEZAMIS

Guest
Hello Jam Hello Hello !

Je n'ai pas tout compris... :eek:
Chez moi comme au boulot(maintenant) je n'obtiens qu'un fichier.bas qui n'est pas du tout fonctionnel.

Comment Kséti Ksamarche ?

Merci d'avance

@+GD
 

Jam

XLDnaute Accro
Salut Hello, Gérard,

Tiens, Gérard visiteur...faut appuyer sur le bouton se connecter en arrivant sur le site ;)

Pour fichier en .bas, il faut l'importer dans le VBE (il s'agit en fait d'un module), ou bien l'ouvrir avec le notepad et copier-coller le contenu dans un module.
Ensuite, y'a plus qu'à utiliser la formule dans le classeur.


Bon courage
 

JCGL

XLDnaute Barbatruc
Bonsoir à tous,

Merci de ne pas me sortir trop de Barbatrucs à la fois : j'ai à peine digérer le EasternBarbaJoyStick de _Thierry que Jam nous sort une fonction qui va en régaler plus d'un(es).

Bravo à toi et à Rob Van Gelder ;-)
 

Ti_

Nous a quitté
Repose en paix
Salut
Vraiment une belle idée que cette petite fonction. Comme j'ai trouvé ça très chouette, j'y suis allé voir de plus près, et je l'ai un peu compactée (bon, j'ai changé le nom des variables, simplement pour m'aider à m'y retrouver). La procédure ShapeDelete est devenue inutile.

J'en ai aussi profité pour modifier 2 petites choses :

-Maintenant on peut indiquer une plage en ligne ou en colonne sans que ça renvoie d'erreur.
-les couleurs sont passées par leur numéro d'index dans la palette - ça restreint un peu le choix mais c'est plus simple pour s'y retrouver qu'avec une valeur RGB


Function LineChart(Points As Range, ByVal Color%)
'la couleur est une valeur de palette (de 1 à 56)
'Une belle fonction de Rob Van Gelder un peu modifiée par Ti
Const KMarge = 2
Dim Ref As Range, ShRg(), Bcle&
Dim Min#, Max#, Pts, Cnt&

On Error Resume Next
Set Ref = Application.Caller

With Points
If .Rows.Count > 1 And .Columns.Count > 1 Then
LineChart = CVErr(xlErrValue): Exit Function
End If
Pts = .Value: Cnt = .Count
If .Columns.Count > 1 Then Pts = WorksheetFunction.Transpose(Pts)
End With
Min = WorksheetFunction.Min(Pts)
Max = WorksheetFunction.Max(Pts)

ReDim ShRg(0 To Cnt - 2)
With Ref
.Worksheet.Shapes(.Address).Delete

For Bcle = 0 To Cnt - 2
With .Worksheet.Shapes.AddLine( _
KMarge + .Left + (Bcle * (.Width - (KMarge * 2)) / (Cnt - 1)), _
KMarge + .Top + (Max - Pts(Bcle + 1, 1)) * (.Height - (KMarge * 2)) / (Max - Min), _
KMarge + .Left + ((Bcle + 1) * (.Width - (KMarge * 2)) / (Cnt - 1)), _
KMarge + .Top + (Max - Pts(Bcle + 2, 1)) * (.Height - (KMarge * 2)) / (Max - Min))
ShRg(Bcle) = .Name
End With
Next Bcle

With .Worksheet.Shapes.Range(ShRg)
.Group
.Line.ForeColor.SchemeColor = Abs(Color)
.Name = Ref.Address
End With
End With

LineChart = ''
End Function
 

Ti_

Nous a quitté
Repose en paix
Re,
Désolé de phagocyter ce post barbatruc, mais ce LineChart très sympa m'a donné quelques idées d'extrapolation dont voici le résultat dans le fichier joint.
Bon, il ne faut pas oublier tout de même que le calcul de ces petits ChartCels prend du temps, donc ça peut faire très joli d'en mettre un ou deux sur une feuille, mais il ne faudrait pas en abuser non plus si on ne veut pas qu'Excel s'épuise à chaque recalcul...

Tiens, au passage, la palette de couleurs autorisée n'est pas la même pour un Shape que pour un Range, ainsi on n'a pas pas 56 valeurs disponibles, mais bien 80 (dont certaines, il est vrai, ne renvoient que du blanc) [file name=ChartCels.zip size=25060]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ChartCels.zip[/file]
 

Pièces jointes

  • ChartCels.zip
    24.5 KB · Affichages: 362

Statistiques des forums

Discussions
312 916
Messages
2 093 577
Membres
105 758
dernier inscrit
RIFAHI MOHAMED