Rechercher : dans
Par :

[Excel] Mise en forme un peu spéciale

Dernière réponse le 20 jui 2006 à 09:33:43 Thibane, le 19 jui 2006 à 13:35:10 
 Signaler ce message aux modérateurs

Bonjour à tous.
Tout d'abord merci pour les réponses que j'ai eu dans un autre forum. Je n'ai pas eu le temps de remercie les personnes. Leurs réponses m'a beaucoup aidé.

Voici un autre probleme que je ne sais pas résoudre.
Ex:

DURANT
DURANT
DUPONT
DUPONT
DUPONT
MARTIN
MARTIN
MARTIN
MARTIN

Voici une liste de nom (situés dans une colonne) dont l'occurrence peut varier.
Je voudrais travailler avec 2 couleurs (minimum, plus pourquoi pas), couleur A et couleur B par exemple, de telle sorte que les lignes de DURANT soient de la couleur A, puis les lignes de DUPONT de la couleur B, les lignes de MARTIN de la couleur A, etc..
Si possible, en évitant d'appliquer cette mise en forme sur les lignes vides (vide étant défini si la 1ere colonne est vide)

Une idée.?

Meilleures réponses pour « [Excel] Mise en forme un peu spéciale » dans :
Excel - Mises en forme conditionnelles illimitées Voir Mises en Forme Conditionnelles Illimitées Introduction Principe Code Fichier joint Introduction La Mise en Forme Conditionelle (ou MFC) permet d'appliquer, à une cellule ou à plusieurs cellules sélectionnées, différents formats qui...
Transformer un fichier Microsoft Excel (.xls) en PDF VoirTransformer en fichier PDF un fichier Microsoft Excel (.xls) Rien de plus simple ! Ouvrez votre fichier *.xls avec OpenOffice.org Réglez éventuellement la mise en page par le menu Format / Page... Dès lors, 2 solutions pour transformer en...
[Excel] Colorer des cellules sur conditions VoirIl existe dans Excel des fonctions très pratiques mais peu connues et peu utilisées. Exemple : vous souhaitez qu'une cellule se colore automatiquement en rouge (ou autre mise en forme de police, de bordure, de trame) selon une condition : un...
Formules Excel de base VoirVoici quelques formules de bases qui sont faciles à réaliser et qui peuvent donner un peu de vie à une feuille Excel ! Pour cette astuce, on supposera que l’on veut que le résultat s’affiche dans la cellule B10 et on se servira principalement des...
Tableur - Les formules VoirUne formule est une expression, qui, lorsqu’elle est interprétée par le tableur, effectue un calcul soit interne, soit plus fréquemment en employant des valeurs présentes dans d’autres cellules. Pour saisir une formule dans une cellule, il suffit de...

1

lami20j, le 19 jui 2006 à 14:00:44

Salut,

tu as essayé avec la Mise en forme conditionnelle dans le menu Format?

lami20j

Répondre à lami20j

2

Thibane, le 19 jui 2006 à 14:23:16

Je ne pense pas pouvoir m'en sortir avec la MEFC.
Si c'est possible, je ne connais pas la formule à appliquer...

Répondre à Thibane

3

Kobaya, le 19 jui 2006 à 15:06:59

Hello Thibane,

je te propose une MEFC un peu différente de ce que tu demandes. J'espère que ç apourra t'aider, car j'ai essayé en vain avec deux couleurs "en bascule"...

en A1, tu mets en Format Conditionnel Condition 1 : =A1<>A2, puis tu sélectionnes une bordure quelconque sur le bas de la cellule.

A+,
Kobaya.

Répondre à Kobaya

4

lami20j, le 19 jui 2006 à 15:16:28

Salut,

Je ne pense pas pouvoir m'en sortir avec la MEFC

Ben, c'est bizarre, puisque si j'ai bien compris ce que tu veux la mise en forme conditionnelle fait l'affaire et il n'y a pas des formules à taper.

J'ai testé avant de repondre et ça marche.

Tu vas seulement dans le Menu Format/Mise en forme conditonnelle et tu configure ce que tu as besoin.

lami20j

Répondre à lami20j

5

Thibane, le 19 jui 2006 à 15:34:57

Ben sans formules je ne vois vraiment pas.
Tu peux me dire ce que t'y mets dans le champ??

Répondre à Thibane

6

Thibane, le 19 jui 2006 à 15:42:56

En fait, si je trouve comment on définit "la cellule juste au-dessus" sous forme de formule, je pourrai m'en sortir avec les conditions "la valeur est différente" et "la valeur est égale".

Pouvez m'aider siouplait?

Répondre à Thibane

7

lami20j, le 19 jui 2006 à 16:40:22

Re,

ce n'est pas ça que tu veux

Donc Menu Format /Mise à jour conditonnelle te donne ça
http://cjoint.com/?htqNsJ2QP6

Et le fichier après

http://cjoint.com/?htqOvmIvvc

J'ai selectionné la colonne entière, ainsi si jamais tu ajoutes un nom il sera tout de suite coloré.

lami20j

Répondre à lami20j

8

Thibane, le 19 jui 2006 à 17:05:10

Merci lami mais ta solution marche parfaitement lorsque tu as 3 noms différents...
Dans mon cas, je repete qu'il s'agit d'une base de donnée, des noms différents, j'en ai plus de 500 et la MEFC ne peut en différencier que 3...

Ceci dit, c'est tout à fait le résultat visuel que je veux, mais pour beaucoup plus de noms! ;)

Répondre à Thibane

9

lami20j, le 19 jui 2006 à 19:11:52

Re,

MEFC ne peut en différencier que 3...


Oups! je n'ai même pas remarqué.
Essaie ça par exemple.
J'espère que tu trouveras une solution meilleure

Option Explicit
Option Compare Text

Sub color_nom()

Dim nom As String
Dim i As Long

For i = 1 To Range("a65536").End(xlUp).Row
nom = Cells(i, 1)
    Select Case nom
        Case Is = "DUPONT"
            Cells(i, 1).Interior.ColorIndex = 27
        Case Is = "MARTIN"
            Cells(i, 1).Interior.ColorIndex = 43
        Case Is = "MICHEL"
            Cells(i, 1).Interior.ColorIndex = 31
        Case Is = ""
            Cells(i, 1).Interior.ColorIndex = 10
    End Select
Next i
End Sub
lami20j

Répondre à lami20j

10

Thibane, le 19 jui 2006 à 21:40:43

Désolé lami mais....cha va po!
>je ne peux pas m'amuser à faire 500 'case'
>si ajout de nouveau nom il y a, l'utilisateur n'est pas sensé savoir qu'il faut toucher le code et rajouter un 'case'...

Ca fait mntnt plusieurs heures que je cherche sur internet, jai trouvé plein de trucs concernant les MEFC mais rien qui ne me convienne!
AAHH!!

Une idée de génie, là, comme ca?

Répondre à Thibane

11

lami20j, le 19 jui 2006 à 22:09:25

Re,

je ne peux pas m'amuser à faire 500 'case'

C'est vrai, mais ça depends si ça vaut ou pas le coup.

Comme je t'ai dit J'espère que tu trouveras une solution meilleure

si ajout de nouveau nom il y a, l'utilisateur n'est pas sensé savoir qu'il faut toucher le code et rajouter un 'case'...

Je suis d'accord, mais de toute façons si tu veux utiliser une couleur pour chaque nom par exemple t'es obligé de choisir un code couleur (un code couleur aleatoire ne t'aidera pas trop, tu n'auras pas le contrôle).

Et même si MEFC avait plus de 3 conditions t'était obligé de configurer la couleur pour chaque nom (plus de 500).

Je pourrai t'aider de faire les cases même si tu as 65535 (je laisse une ligne pour en-tête), et pas en les tapant mais avec un script.

Tu n'as qu'à me donner la liste des noms. En revanche il me semble que pour les couleurs la palette d'Excel est limitée.

lami20j

Répondre à lami20j

12

Thibane, le 19 jui 2006 à 22:18:10

Non non non! Pas une couleur par nom!
Comme je l'ai expliqué dans l'exemple, deux couleurs suffiraient!

si vous avez besoin d'une idée du résultat : thibane@hotmail.com

Répondre à Thibane

13

lami20j, le 19 jui 2006 à 23:33:34

Re,

Je voudrais travailler avec 2 couleurs (minimum, plus pourquoi pas),

D'où ma confusion. Mais en ce cas la solution de Kobaya ne te convient-elle?

lami20j

Répondre à lami20j

14

 Thibane, le 20 jui 2006 à 09:33:43
  • +1

Après creusage de méninges, j'ai trouvé la solution, voici la macro pour ceux que ca intéresse.


Je rapelle mon but : si plusieurs ligne contiennent la meme valeur dans la premiere colonne (if target.value=target.offset......) alors je veux colorier la cellule de la meme couleur que la précédente, mes cellules ayant la meme valeur étant toujours contigues.
ex:
1 DUPONT Pierre < COULEUR 36
1 DUPONT Pierre < 36
2 DUPONT Martin <34
2 DUPONT Martin <34
2 DUPONT Martin <34
43 HENRY Thierry <36
5 GERARD Philippe <34

La deuxieme partie du code est juste là dans le cas ou la premiere ligne DUPONT Pierre a la couleur 34, du coup on inverse...

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Then
        Exit Sub
    End If
    On Error GoTo sortie
    If Target.Value = Target.Offset(-1, 0).Value Then
        If Target.Offset(-1, 0).Interior.ColorIndex = 36 Then
            For c = 0 To 9
                Target.Offset(0, c).Interior.ColorIndex = 36
            Next
        Else
            For c = 0 To 9
                Target.Offset(0, c).Interior.ColorIndex = 34
            Next
        End If
        Exit Sub
    Else
        If Target.Offset(-1, 0).Interior.ColorIndex = 36 Then
            For c = 0 To 9
                Target.Offset(0, c).Interior.ColorIndex = 34
            Next
        Else
            For c = 0 To 9
                Target.Offset(0, c).Interior.ColorIndex = 36
            Next
        End If
        Exit Sub
    End If
sortie:
End Sub


Fiouh! Merci qdmm à vous pour m'avoir répondu!
++

Répondre à Thibane
Collection CommentÇaMarche.net