Posez votre question Signaler

Colorer des cellules excel sous conditions [Résolu]

balata9 - Dernière réponse le 11 juin 2010 à 15:52
Bonjour à tous,
J'ai une liste de nom de lieux (liste 1) qui se situe en colonne B et commance à la ligne 26.
J'ai une autre liste de lieux (liste 2) située en colonne G et commançant également à la ligne 26.
Je souhaite colorer en jaune les cellules de la liste 1 qui portent le même nom qu'une cellules de la liste 2.
Il faut savoir que les deux listes commancent toujours à la ligne 26 mais leur longueur varie tous les jours.
J'ai deja essayé la mise en forme conditionnelle mais je n'y arrive pas. Si quelqu'un pouvait m'aider se serait super.
Merci d'avance,
Balata9
Lire la suite 
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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 :
=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.
Ajouter un commentaire
Réponse
+0
moins plus
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
gbinforme 11127Messages postés lundi 18 octobre 2004Date d'inscription ContributeurStatut 6 juillet 2015 Dernière intervention - 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.

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
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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é
Ajouter un commentaire
Réponse
+0
moins plus
Merci a ts pour vos réponses, elles sont très utiles!
Ajouter un commentaire
Ce document intitulé «  Colorer des cellules excel sous conditions  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.