[Excel] Recherche de caractères.

Recherche de caractères. [Excel] - Logiciels - Windows & Software

Marsh Posté le 21-03-2007 à 16:35:10    

Bonjour :]
 
Voici mon problème :  
j'ai un fichier excel contenant environ 8000 cases de ce type : '26-36/37-45-50/53'
Je veux afficher un texte dans la case d'à côté suivant ce que l'on y trouve.
 
Plus précisément, si on trouve une de ces chaînes de caractères : '49', '45', '50/53', '46', '60' ou '61',
je veux afficher le texte "CMR", si l'on trouve aucune de ces chaînes dans la case, je veux afficher "Non concerné".
 
Voilà la formule que j'ai écrite :

Code :
  1. SI(CHERCHE("49";F280);"CMR";SI(CHERCHE("45";F280);"CMR";SI(CHERCHE("50/53";F280);"CMR";SI(CHERCHE("46";F280);"CMR";SI(CHERCHE("60";F280);"CMR";SI(CHERCHE("61";F280);"CMR";"Non concerné" ))))))


 
Mais le résultat de cette formule n'est pas bon, bien que la formule me paraisse valide.
Ca m'affiche "CMR" seulement si la valeur est égale à 49, autrement, j'ai le texte "#VALEUR!" qui est affiché,
pour n'importe quel contenu examiné (chaîne recherchée ou pas).
 
Quelqu'un saurait d'où vient l'erreur ?
J'ai essayé pas mal de trucs mais rien n'y fait :/
 
Merci d'avance.


---------------
Soon.
Reply

Marsh Posté le 21-03-2007 à 16:35:10   

Reply

Marsh Posté le 21-03-2007 à 17:23:25    

Bonjour
 
Oui l'erreur vient du fait que du moment qu'il ne trouve pas, il ne renvoit pas dans la condition NON du SI mais renvoit #Valeur!
 
Essaies de regarder du coté de la fonction TYPE.ERREUR() qui permet de tester si une formule renvoit une erreur ou pas.
 
PS : #Valeur! renvoit 3 avec TYPE.ERREUR()
 
Cordialement

Reply

Marsh Posté le 21-03-2007 à 17:26:48    

Merci beaucoup pour ton aide dje69r !
Je vais tester ça de ce pas :]

Reply

Marsh Posté le 21-03-2007 à 17:35:02    

Sinon beaucoup plus simple :
 
Tu vas dans Outils, Macro, Visual Basic Editor
Tu vas dans le menu Insertion, Module
 
Dans la zone blanche qui apparait qui doit s'appeler module1 tu saisis ceci :
 
Function Chercher(CelluleDnsLaquelleChercher, TxtAChercher)
 
  a = InStr(1, CelluleDnsLaquelleChercher, TxtAChercher)
  If a <> 0 Then
    Chercher = 1
  Else
    Chercher = 0
  End If
 
End Function

 
Ensuite, il suffit juste de saisir dans une cellule la fonction :
=CHERCHER(La cellule dans laquelle chercher ; le texte cherché)
Donc avec ton exemple :
=Chercher(F280;"49" ) <(--- Si c'est bon il met 1, sinon 0
 
Donc ensuite faire un =SI dessus devient simple.
 
Cordialement


Message édité par SuppotDeSaTante le 21-03-2007 à 17:39:27

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 21-03-2007 à 17:45:27    

Je modifie un peu, pour que tu puisses reprendre tes formules sans tout refaire :
 
Function Chercher(TxtAChercher, CelluleDnsLaquelleChercher)  
 
  a = InStr(1, CelluleDnsLaquelleChercher, TxtAChercher)  
  If a <> 0 Then  
    Chercher = 1  
  Else  
    Chercher = 0  
  End If  
 
End Function

 
Donc avec ton exemple ca donne ca :
=SI(chercher("49";F280)=1;"CMR";SI(chercher("45";F280)=1;"CMR";SI(chercher("50/53";F280)=1;"CMR";SI(chercher("46";F280)=1;"CMR";SI(chercher("60";F280)=1;"CMR";SI(chercher("61";F280)=1;"CMR";"Non concerné" ))))))
 
 
Donc tu copies une de tes formules à toi sous Word, ca :

Code :
  1. SI(CHERCHE("49";F280);"CMR";SI(CHERCHE("45";F280);"CMR";SI(CHERCHE("50/53";F280);"CMR";SI(CHERCHE("46";F280);"CMR";SI(CHERCHE("60";F280);"CMR";SI(CHERCHE("61";F280);"CMR";"Non concerné" ))))))


Tu fais Edition, Remplacer, tu remplaces CHERCHE par CHERCHER
Ensuite, tu remplace F280) par F280)=1
Et le tour est joué ;)
 
Cordialement


Message édité par SuppotDeSaTante le 21-03-2007 à 17:47:12

---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed