Colorer des cellules excel sous conditions
Résolu/Fermé
A voir également:
- Colorer des cellules excel sous conditions
- Formule excel pour additionner plusieurs cellules - Guide
- Excel cellule couleur si condition texte - Guide
- Verrouiller des cellules excel - Guide
- Liste déroulante excel - Guide
- Aller à la ligne dans une cellule excel - Guide
5 réponses
dobo69
Messages postés
1587
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
30 juin 2013
827
Modifié par dobo69 le 10/06/2010 à 22:33
Modifié par dobo69 le 10/06/2010 à 22:33
bonjour,
c'est pourtant la bonne solution.
tout d'abord définir le nom suivant pour liste2 :
=DECALER($G$26;;;NBVAL($G:$G);1)
ou
=DECALER($G$26;;;NBVAL($G26:$G10000);1) si il y a des valeurs au dessus de G26.
ensuite la MFC se fait avec "la formule est" (excel2003) :
=RECHERCHEV(B26;liste2;1;FAUX)=B26
(puis choisir le format bien sur) et format à appliquer pour toutes les cellules de la colonne B concernées.
Si vous n'avez besoin de rien, demandez-moi.
c'est pourtant la bonne solution.
tout d'abord définir le nom suivant pour liste2 :
=DECALER($G$26;;;NBVAL($G:$G);1)
ou
=DECALER($G$26;;;NBVAL($G26:$G10000);1) si il y a des valeurs au dessus de G26.
ensuite la MFC se fait avec "la formule est" (excel2003) :
=RECHERCHEV(B26;liste2;1;FAUX)=B26
(puis choisir le format bien sur) et format à appliquer pour toutes les cellules de la colonne B concernées.
Si vous n'avez besoin de rien, demandez-moi.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
10 juin 2010 à 22:33
10 juin 2010 à 22:33
bonjour
Tu sélectionnes la cellule B26 (début liste1)
Tu appuies sur la touche majuscule et simultanément tu fait 2 fois ctrl + fléche en bas
Tu sélectionnes le menu mise en forme conditionnelle
Tu choisis "la formule est" et tu mets la formule :
puis tu choisis ta couleur.
Quelle que soit la longueur de ta liste les doubles seront colorés.
Tu sélectionnes la cellule B26 (début liste1)
Tu appuies sur la touche majuscule et simultanément tu fait 2 fois ctrl + fléche en bas
Tu sélectionnes le menu mise en forme conditionnelle
Tu choisis "la formule est" et tu mets la formule :
=NB.SI($G$26:$G$65532;B26)>0
puis tu choisis ta couleur.
Quelle que soit la longueur de ta liste les doubles seront colorés.
Merci beaucoup dobo69 et gbinforme!! J'ai testé vos solutions et les deux fonctionnent.
Par contre j'aurais aimé savoir comment obtenir les même résultats en realisant une macro en VBA. J'ai essayé mais je n'y arrive pas (je précise que je n'y connais rien). j'ai rentré le code suivant:
Sub ProblemeSonde()
Dim i As Long
Dim j As Long
Dim CENTRALE_FAIBLE As String
Dim CENTRALE_PROB_SONDE As String
i = 26 'début de la colonne des sites à faibles productibles ou ratios'
j = 26 'début de la colonne des sites avec problèmes de sondes'
'CENTRALE_FAIBLE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Cells(i, 2)'
'CENTRALE_PROB_SONDE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Cells(j, 7)'
CENTRALE_FAIBLE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("B" & i)
CENTRALE_PROB_SONDE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("G" & j)
If CENTRALE_FAIBLE = CENTRALE_PROB_SONDE Then
ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("B" & i).Interior.Color = RGB(255, 255, 0)
End If
End Sub
Savez-vous quel est le problème et comment le résoudre? Merci beaucoup,
Balata 9
Par contre j'aurais aimé savoir comment obtenir les même résultats en realisant une macro en VBA. J'ai essayé mais je n'y arrive pas (je précise que je n'y connais rien). j'ai rentré le code suivant:
Sub ProblemeSonde()
Dim i As Long
Dim j As Long
Dim CENTRALE_FAIBLE As String
Dim CENTRALE_PROB_SONDE As String
i = 26 'début de la colonne des sites à faibles productibles ou ratios'
j = 26 'début de la colonne des sites avec problèmes de sondes'
'CENTRALE_FAIBLE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Cells(i, 2)'
'CENTRALE_PROB_SONDE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Cells(j, 7)'
CENTRALE_FAIBLE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("B" & i)
CENTRALE_PROB_SONDE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("G" & j)
If CENTRALE_FAIBLE = CENTRALE_PROB_SONDE Then
ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("B" & i).Interior.Color = RGB(255, 255, 0)
End If
End Sub
Savez-vous quel est le problème et comment le résoudre? Merci beaucoup,
Balata 9
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
11 juin 2010 à 00:06
11 juin 2010 à 00:06
Bonsoir,
Ton problème vient du fait que tu ne boucles pas sur ta liste.
Je te propose ceci qui fonctionne si tu n'as pas de mise en forme conditionnelle et qui peut être mis dans la macro événementielle "change" pour être automatique à chaque modification.
Ton problème vient du fait que tu ne boucles pas sur ta liste.
Je te propose ceci qui fonctionne si tu n'as pas de mise en forme conditionnelle et qui peut être mis dans la macro événementielle "change" pour être automatique à chaque modification.
Sub ProblemeSonde() Dim i As Long Dim liste2 As Range ' feuille concernée With ThisWorkbook.Worksheets("TABLEAU DE CONTROLE") ' range liste à comparer Set liste2 = .Cells(26, "G").Resize(.Cells(.Columns(2).Cells.Count, "G").End(xlUp).Row - 25, 1) ' boucle sur liste colonne B For i = 26 To .Cells(.Columns(2).Cells.Count, "B").End(xlUp).Row If Application.WorksheetFunction.CountIf(liste2, .Cells(i, "B").Value) > 0 Then .Range("B" & i).Interior.Color = RGB(255, 255, 0) Else ' pas de couleur si absent .Range("B" & i).Interior.Color = xlAutomatic End If Next i End With End Sub
pépé35530
Messages postés
2942
Date d'inscription
vendredi 1 mai 2009
Statut
Membre
Dernière intervention
19 mars 2016
1 386
10 juin 2010 à 23:18
10 juin 2010 à 23:18
Bonjour,
Autre solution,
Bonjour,
Principe retenu :
Rechercher et afficher le cas échéant le nom d'une ville
Comparer les deux noms : si identique, colorier la cellule
Même principe pour la deuxième liste
La liste 1 est en colonne A
La liste 2 est en colonne C
En colonne B, ligne 2 utiliser la fonction RECHERCHEV
Soit : =RECHERCHEV(A2;$C$2:$C$4;1;FAUX)
Permet d'afficher ou non la même valeur qu'en colonne A
Faire la même chose en colonne D
=RECHERCHEV(C2;A2:A4;1;FAUX)
Ensuite, utiliser la mise en forme conditionnelle
Appliquer une mise en forme uniquement pour les cellules qui contiennent
Valeur de la cellule est égale à....B2 pour la liste 1
Valeur de la cellule est égale à...D2 pour la liste 2
Les colonnes B et D seront masquées.
Remarque : j'ai essayé d'intégrer directement la fonction RECHERCHEV dans la mise en forme conditionnelle, mais une adresse reste en adresse absolue au lieu d'être en adresse relative.
Bon courage
pépé
Autre solution,
Bonjour,
Principe retenu :
Rechercher et afficher le cas échéant le nom d'une ville
Comparer les deux noms : si identique, colorier la cellule
Même principe pour la deuxième liste
La liste 1 est en colonne A
La liste 2 est en colonne C
En colonne B, ligne 2 utiliser la fonction RECHERCHEV
Soit : =RECHERCHEV(A2;$C$2:$C$4;1;FAUX)
Permet d'afficher ou non la même valeur qu'en colonne A
Faire la même chose en colonne D
=RECHERCHEV(C2;A2:A4;1;FAUX)
Ensuite, utiliser la mise en forme conditionnelle
Appliquer une mise en forme uniquement pour les cellules qui contiennent
Valeur de la cellule est égale à....B2 pour la liste 1
Valeur de la cellule est égale à...D2 pour la liste 2
Les colonnes B et D seront masquées.
Remarque : j'ai essayé d'intégrer directement la fonction RECHERCHEV dans la mise en forme conditionnelle, mais une adresse reste en adresse absolue au lieu d'être en adresse relative.
Bon courage
pépé
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question