Hauteur des cellules en fonction de leurs valeurs?

Hauteur des cellules en fonction de leurs valeurs? - VB/VBA/VBS - Programmation

Marsh Posté le 10-04-2007 à 14:59:31    

Bonjour a tous,
 
Sous Excel, je dispose de valeurs en colonne (lignes 7 à 26) ainsi que d'un total (ligne 5).
J'aimerais que chaque cellule ait une hauteur en fonction de sa valeur (base de 12 pour une cellule qui fait 5% du total).
 
Exemple : Une cellule prend comme valeur 10, celle d en dessous 20. Le total est donc de 30.
Je veux que la 1ere cellule fasse en hauteur 12*(10/30)/0.05 et que la 2eme fasse 12*(20/30)/0.05
 
Je n'arrive pas à incorporer la valeur de la cellule dans ma fonction VB donc si qqun pouvait m'aider, ca serait super cool.
 
Merci

Reply

Marsh Posté le 10-04-2007 à 14:59:31   

Reply

Marsh Posté le 10-04-2007 à 15:35:56    

commence par poster ton bout de code actuel
 
ps : à noter qu'un graphe "histograme cumulé" me semble plus propre comme solution


Message édité par MagicBuzz le 10-04-2007 à 15:36:39
Reply

Marsh Posté le 10-04-2007 à 16:23:27    

Voici le code que j'ai pour une cellule mais l'utilisation du Value ne me parait pas bonne...
 
Range("E11" ).Select
    Rows("11:11" ).RowHeight = Cells("E11" ).Value * 18 / Cells("E5" ).Value

Reply

Marsh Posté le 10-04-2007 à 16:24:31    

Value2 pour récupérer la valeur. Value contient la formule lorsque c'est une formule

Reply

Marsh Posté le 10-04-2007 à 16:25:38    

Et j'imagine que dans ton cas :
 
Cells("E5" ).Value = "=sum(E7:E26)"

Reply

Marsh Posté le 10-04-2007 à 16:26:57    

ok merci.  
 
Cependant, j ai une erreur : "Incompatibilité de type"

Reply

Marsh Posté le 10-04-2007 à 16:37:13    

ben fait des débug.
et tente un CInt() autour de la valeur

Reply

Marsh Posté le 10-04-2007 à 16:41:37    

Le Débug m'indique que l'erreur est la, mais je n'arrive pas à la déceler.
Peux-tu me dire si qqch te saute aux yeux?
 
Rows("11:11" ).RowHeight = Cells("E11" ).Value2 * 18 / Cells("E5" ).Value2
 
Merci

Reply

Marsh Posté le 10-04-2007 à 16:43:45    

quand je parle de debug, colle des msgbox partout avant cette ligne, afin d'afficher :
 
Cells("E11" ).Value2
Cells("E5" ).Value2
Cells("E11" ).Value2 * 18 / Cells("E5" ).Value2
et
Rows("11:11" ).RowHeight
 
(parceque j'ai pu me planter entre Value et Value2, je sais jamais lequel contient la formule en fait ;))

Reply

Marsh Posté le 11-04-2007 à 01:38:44    

"Cells" ne supporte pas la nomenclature excel de type "E11" ;  soit tu remplaces "cells" par "range" soit tu remplaces cells("E11" ) par cells(11,5)
 
voila

Reply

Marsh Posté le 11-04-2007 à 01:38:44   

Reply

Marsh Posté le 11-04-2007 à 01:44:03    

Sinon, concernant .value ou .value2, les 2 donnent le même résultat dans le cas d'une valeur stricte (12 p. ex.) ou d'un calcul excel (=6*2).

Reply

Marsh Posté le 11-04-2007 à 10:19:51    

AprilThe5th a écrit :

Sinon, concernant .value ou .value2, les 2 donnent le même résultat dans le cas d'une valeur stricte (12 p. ex.) ou d'un calcul excel (=6*2).


chelou en effet
 
MsgBox (Cells(3, 1).Formula) <- c'est ça qui affiche la formule...
 
Effectivement, j'ai dit une connerie à propos de Value et Value2.
D'après la doc :

Citation :

La seule différence existant entre cette propriété et la propriété Value réside dans le fait que la propriété Value2 n'utilise pas les types de données aux formats Currency et Date. Vous pouvez retourner des données de ce type sous forme de nombres à virgule flottante en utilisant le type de données Double.


 
Me coucherai moins con ce soir :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed