Coloriage partiel de cellules

titeuf136 Messages postés 91 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 19 octobre 2012 - 14 avril 2010 à 14:28
titeuf136 Messages postés 91 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 19 octobre 2012 - 19 avril 2010 à 16:27
Bonjour,

je souhaiterai lier une valeur (un pourcentage) au coloriage d'une cellule.

je m'explique

si par exemple la celule contient la valeur 10
je souhaite colorier 10% de la largeur totale de la cellule en rouge
malgré le coloriage de la cellule le texte (valeur 10) devra rester visible

j'imagine qu'il est possible de connaître la largeur de la cellule et de la diviser par exemple par 100 (ainsi 1% 1 division de cellule), mais comment faire ensuite pour colorier cette cellule uniquement jusque la bonne division (10% 10divisions de coloriées)

Avez vous des propositions à me faire (j'utilise vba excel 2007)?

Merci d'avance

13 réponses

NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011
14 avril 2010 à 15:52
Pas besoin de programmer quoi que se soit.
Ruban "Accueil", bouton "Mise en forme conditionnel"
et ensuite tu choisis couleurs et conditions.

S Nikator
0
titeuf136 Messages postés 91 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 19 octobre 2012 1
14 avril 2010 à 16:31
je me suis trompé en effet il me semble que cette fonction est disponible sur excel 2007, qu'en est-il sur excel 2003 (j'utilise excel 2003 et non 2007 comme je l'avais écris ci-dessus désolé!)

merci
0
NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011
14 avril 2010 à 18:40
Je regarde au taf demain et je te dit ça


S Nikator
0
NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011
15 avril 2010 à 10:54
Menu "Format", "Mise en forme conditionnel".

Tout change


S Nikator
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Zock Messages postés 38 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 15 avril 2010
15 avril 2010 à 13:13
Je vous rassure tout de suite, ça marche aussi sur Excel 2002

Zock[size=50]
/size
0
titeuf136 Messages postés 91 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 19 octobre 2012 1
15 avril 2010 à 13:27
Bonjour,

je ne suis certainement pas très doué mais, je ne vois vraiement pas où se trouve cette fonction:

"Format" (ok), "Mise en forme conditionnel" (ok) ... mais ensuite que faire?

Par exemple si la cellule contient la valeur 10, je souhaite ne colorier que 10% de la largeur totale de la cellule.

merci
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
15 avril 2010 à 13:51
Salut,

Colorier qu'une partie de la cellule ? Jusqu'a XL2003 ce n'était pas possible pour 2007 je ne sais pas !

A+
0
titeuf136 Messages postés 91 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 19 octobre 2012 1
15 avril 2010 à 14:08
il me semblait égalementque cette fonction n'existe pas sur xl2003

mais est-il possible de connaître le nbr de pisxel (largeur et hauteur de la cellule), puis de ne colorier que les pixels voulu de manière à colorier une partie de la cellule?
0
NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011
16 avril 2010 à 09:46
Désolé pour ma précédente réponse j'avais regardé à la va-vite.

Je crains que tu ne puisse pas faire ce que tu souhaites, ni en 2003 ni en 2007, il faudrait avoir accès au canvas de la cellule et se serait dangereux pour excel.

Il y a solution cependant. Réduit la largeur de tes colonnes et utilise le "centrage sur plusieurs colonnes". Tu pourras colorier cellule par cellule et ainsi avoir des paliers de pourcentage. Plus tu utilisera de colonnes et plus elles seront petites et plus tes paliers seront précis.

C'est une méthode utilisé à mon travail. Ils se servent de dix colonnes. Toutes les cellules en blanc, le travail n'a pas commencé, cinq cellules en bleu le travail est fait de moitié, etc...


S Nikator
0
titeuf136 Messages postés 91 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 19 octobre 2012 1
16 avril 2010 à 09:57
ok

je vais continuer à chercher une solution
Dans mon cas il n'est pas possible d'utiliser plusieurs cellules pour faire illusion (beacoup de cellules sont concernée, impossible de les déplacer, si je réduis la largeur des cellules on ne verra plus le texte écrit de dans)

La solution que je retiens pour l'instant est de procéder au coloriage intégral de la cellules mais en nuançant la couleur. Mais là encore les nuancs sont très limité sur excel2003 (contrairement à excel2007) par exemple j'aurai des cellules de même couleur si les valeur sont comprises entre 0 et 10. Est-il possible d'augmenter cette palette de couleurs ?
0
NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011
16 avril 2010 à 11:43
Utilise Color
Dim Rouge As Byte, Vert As Byte, Bleu As Byte ' de 0 à 255
    Cells(1, 3).Interior.Color = RGB(Rouge, Vert, Bleu)

Voici un exemple de nuancier (en %) qui va de rouge (0%) à blanc (100%)
    Dim I As Integer, J As Integer
    
    J = 1
    For I = 0 To 100 Step 5
        Cells(J, 2).Interior.Color = RGB(255, 255 * I / 100, 255 * I / 100)
        J = J + 1
    Next


S Nikator
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
16 avril 2010 à 12:14
Salut,

jusqu'à XL2003 le nombre de couleur est limité à 56 par classeur.
Donc il te faudra jongler avec la palette excel qui par contre est modifiable par macro.

un exemple que j'ai posté il quelque temps ici : http://www.vbfrance.com/forum/sujet-COULEURS-EQUIDISTANTES_1064993.aspx

Sub couleurs()
    Dim i As Byte, rouge As Byte, vert As Byte, bleu As Byte, n As Byte, compteur As Byte
    Dim NbCouleur As Byte, NiveauMax As Byte, NiveauMin As Byte
    NiveauMax = 255
    NiveauMin = 0
    rouge = NiveauMax
    vert = NiveauMin
    bleu = NiveauMin
    compteur = 1
    NbCouleur = 6 'par couleur primaire (ne peut être superieur à 11)
    For i = 1 To 5
        For n = 0 To NbCouleur - 1
            Select Case i
            Case 1 'du rouge au jaune
                vert = (NiveauMax / NbCouleur) * n
            Case 2 'du jaune au vert
                vert = NiveauMax
                rouge = NiveauMax - ((NiveauMax / NbCouleur) * n)
            Case 3 ' du vert au cyan
                rouge = NiveauMin
                bleu = (NiveauMax / NbCouleur) * n
            Case 4 'du cyan au bleu
                bleu = NiveauMax
                vert = NiveauMax - ((NiveauMax / NbCouleur) * n)
            Case 5 'du bleu au magenta
                vert = NiveauMin
                rouge = (NiveauMax / NbCouleur) * n
            End Select
        ActiveWorkbook.Colors(compteur) = RGB(rouge, vert, bleu) 'la limite d'un classeur excel est de 56 couleurs
        Cells(compteur, 1).Interior.Color = ActiveWorkbook.Colors(compteur)
        compteur = compteur + 1
        Next n
    Next i
End Sub


A+
0
titeuf136 Messages postés 91 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 19 octobre 2012 1
19 avril 2010 à 16:27
ok, mais cela suppose un remplacement des couleurs. Or ma feuille excel utilise déjà ces autres couleurs.

toutefois, j'aimerais savoir comment retrouver la palette de couleur d'origine, après avoir éxecuté la macro de changement de couleur

merci
0
Rejoignez-nous