Rechercher : dans
Par :

Formule Excel tenant compte couleurs texte

Dernière réponse le 1 jui 2009 à 11:46:48 Rwanit74, le 30 jun 2009 à 15:33:39 
 Signaler ce message aux modérateurs

Bonjour à tous,

J'ai des cellules contenant du texte de différentes couleurs dedans, par exemple en A2 j'ai écrit "chien" en noir, "chat" en bleu et "lapin" en bleu.
Je voudrais pouvoir avec un formule,recupérer dans une autre feuille les informations relatives au texte et couleur inscrits dans ma cellule en leur donnant les valeurs 1 ou 0:
par exemples, si A2 contient "lapin" et qu'il est en noir alors valeur = 1 si non 0.

J'ai déjà réussi à récupérer la notion de texte avec la formule suivante : =SI(ESTNUM(CHERCHE("lapin";A2));1;0) mais je trouve rien pour la couleur

J'espère avoir été assez clair sur ma demande.

Merci.

Meilleures réponses pour « Formule Excel tenant compte couleurs texte » dans :
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...

1

tontong, le 30 jun 2009 à 17:05:03

Bonjour,
La première étape consiste à récupérer le code de couleur de police dans une colonne B avec une fonction
LIRE.CELLULE.
se mettre en B2
- menu ' insertion / nom / définir.'
- nom dans le classeur:'poil' fait référence à: =LIRE.CELLULE(24;Feuil1!A2), 'Ajouter' ,OK, Fermer.
- Si l'argument 24 ne convient pas essayer 64
- en B2 mettre =poil , B2 récupère le n° de la couleur de police A2
- recopier vers le bas si besoin
Ne fonctionne pas avec les couleurs automatiques ou liées à une MFC.
Ensuite utiliser une fonction Si + ET du genre:
=SI(ET(A2="Lapin";B2=6);1;0)
Un peu de code VBA serait une solution plus académique mais qui sort de ma compétence.

Répondre à tontong

2

Raymond PENTIER, le 1 jui 2009 à 03:56:50

Salut tontong.
Où trouves-tu cette fonction LIRE.CELLULE ? C'est bien, la retraite ! Surtout aux Antilles ... :-)
☻ Raymond ♂

Répondre à Raymond PENTIER

5

tontong, le 1 jui 2009 à 11:16:47

Salut Raymond,
La fonction LIRE.CELLULE est une fonction macro. Cependant par héritage du passé elle fonctionne encore à condition d’être dans un champ nommé. On peut d’ailleurs par ce biais récupérer d’autres paramètres que les couleurs de polices et de motifs. J’avais rangé cette astuce dans ma boite à malices à la suite d’une intervention d’ Eriiic.
Une fonction similaire =XLM.LIRE.CELLULE() fait partie de la macro complémentaire MOREFUNC
http://www.commentcamarche.net/telecharger/?Mot=morefunc&cat=5

Répondre à tontong

3

Raymond PENTIER, le 1 jui 2009 à 04:00:57

Bonjour Rwanit74.
Je crains qu'il n'existe aucune solution à ton problème ...
Car à la limite je pourrais te proposer un artifice, si tes 3 noms de 3 couleurs différentes étaient dans 3 cellules voisines ; mais accolées dans une même cellule ? Je n'entrevois aucune piste ! C'est bien, la retraite ! Surtout aux Antilles ... :-)
☻ Raymond ♂

Répondre à Raymond PENTIER

4

Rwanit74, le 1 jui 2009 à 09:05:37

Bonjour,

Pas mal du tout ta fonction Tontong, très pratique.
Le soucis c'est que dans une même cellule je peux avoir plusieurs couleurs de texte et qu'avec LIRE.CELLULE il reconnait la couleur du premier caractère par défaut.
Il faudrait qu'il puisse reconnaître la couleur du texte dans la cellule en tenant compte du mot cherché...

comme dit raymond, je ne suis pas certain que ca puisse se faire avec des formules de base.

mais peut-être qu'en combinant plusieurs formules ou fonctions ???

Répondre à Rwanit74

6

tontong, le 1 jui 2009 à 11:18:36

Bonjour Rwanit74,
Comme Raymond je ne vois pas de solution pour faire sortir le "lapin bleu" de sa cage s’il n’est pas tout seul. ;-)
Bonne journée.

Répondre à tontong

7

 smartway14, le 1 jui 2009 à 11:46:48

Bonjour;
essayez avec cet code
Sub conditon()
Dim Espace As Object
Dim ctr As Integer
Dim nbcel As Integer
Set Espace = Range("A1").CurrentRegion
nbcel = Espace.Count
For cte = 1 To nbcel
If Espace(ctr) = "chien" Then
If Espace(ctr).Interior.ColorIndex = 0 Then
Espace(ctr).Offset(0, 1) = "1"
Else
Espace(ctr).Offset(0, 1) = "0"
End If
End If
Next
End Sub

Répondre à smartway14