× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 recherche dans une chaîne comme dans une plage de cellulesSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Boogie Palace
  Posté le 16/06/2016 @ 17:05 
Aller en bas de la page 
Petit astucien

bonjour le forum,

[Excel 2010]
ce que je cherche à faire est simple avec la méthode que je connais : vérifier la présence d'une valeur texte dans une plage de cellules.
exemple ci-dessous où je cherche à savoir si "Fifi" en D1 existe dans la plage A1:A3.
je teste ça dans la cellule D2 en vert (dont la formule est affichée à droite) :



maintenant, j'aimerais pouvoir faire la même chose, mais en utilisant, non pas ma plage A1:A3, mais la chaîne en A5, comme source pour ma recherche.

j'avais d'abord pensé à la fonction CHERCHE/TROUVE pour chercher "Fifi" dans la chaîne.
mais on atteint les limites de cette méthode si la chaîne contient un "Fifi bis", et pas de "Fifi" tout court, car la fonction CHERCHE/TROUVE va s'arrêter à la 1e chaîne "Fifi" qu'elle trouve (en l'occurrence "Fifi bis"), et "Fifi" sera considéré comme présent, alors que non.
il faudrait en qq sorte faire considérer cette chaîne par Excel comme une plage telle que A1:A3.

merci de votre aide.
possible avec des fonctions natives d'Excel ou bien faut passer par une fonction personnalisée ?

BP

Publicité
gilbert_rgi
 Posté le 16/06/2016 à 18:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour

comme ceci

=SI(SIERREUR(CHERCHE(D1;A5)>0;"")=VRAI;"Oui";"Non")

ferrand
 Posté le 17/06/2016 à 00:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut,

Une fonction personnalisée :

Function ESTDANS(txt As String, txch As String, s As String) As Boolean
Dim ttx, i%
Application.Volatile
ttx = Split(Trim(txt), s)
For i = 0 To UBound(ttx)
If StrComp(Trim(ttx(i)), Trim(txch), vbTextCompare) = 0 Then
ESTDANS = True
Exit Function
End If
Next i
ESTDANS = False
End Function

=ESTDANS(chaîne texte de recherche;élément cherché;séparateur d'éléments)

Cordialement.

Boogie Palace
 Posté le 17/06/2016 à 11:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

gilbert, merci mais avec CHERCHE on atteint les limites que j'évoquais : "Fifi" est considéré comme présent même si la liste contient "Fifi bis".


ferrand, merci pour cette solution clé en main, mais je cherchais qqch de plus ciblé, en conservant la méthode avec EQUIV, et en remplaçant uniquement la plage A1:A3 par la chaîne en A5.
du coup je me suis inspiré de ta solution et j'ai fini par trouver mon bonheur, que voici (si ça peut aider d'autres gens) :

avec la fonction perso suivante :

Function SPLIT_PERSO(TEXTE As String, SEPARATEUR As String)
Application.Volatile
SPLIT_PERSO = Split(TEXTE, SEPARATEUR)
End Function


je l'utilise ainsi : =SI(ESTERREUR(EQUIV(D1;SPLIT_PERSO(A5;";");0));"non";"oui")

et ça fonctionne, youpi.

ferrand
 Posté le 18/06/2016 à 01:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut Boogie,

Elle était pas tout à fait clé en mains dans la mesure où je mettais le séparateur en argument, afin de ne pas la particulariser trop et permettre son utilisation dans les cas similaires...

Mais tu prends le même chemin sur l'aspect principal qui fait défaut pour traiter aisément des données texte : le split ! J'en ai fait une bonne vingtaine au fil du temps et dans presque toutes ce qui rend le traitement plus facile , c'est de splitter.

Bon weekend.

LORENZO83
 Posté le 18/06/2016 à 09:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour

Essayez cette formule

=SI(OU(NB.SI(A1;"*fifi*");NB.SI(A251;"*fifi*"));"Vrai";"Faux")

Cdlt

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
-30%Nouveaux clients Amazon Business : 30% de réduction sur la première commande
Valable jusqu'au 30 Novembre

Amazon offre actuellement aux professionnels une remise de 30% sur leur première commande (jusqu'à 200 € d'achats) avec le code BFB2B20. Pour en profiter, créez gratuitement un compte Amazon Business (un numéro de SIRET est nécessaire) et après confirmation, votre code de réduction BFB2B20 sera activé sur votre compte et valable jusqu'au 30 octobre. Le compte Amazon Business est réservé aux professionnels et permet d'accéder à des millions de produits destinés aux professionnels, de comparer les prix HT, d'avoir des offres réservées, de pouvoir payer à 30 jours, de récupérer en un clic toutes les factures HT et avec TVA et de suivre et analyser vos dépenses avec des rapports personnalisés.


> Voir l'offre
89,50 €SSD Samsung 860 QVO 1 To à 89,50 €
Valable jusqu'au 30 Novembre

Boulanger fait une promotion sur le SSD Samsung 860 QVO 1 To qui passe à 89,99 €. Ce SSD offre des vitesses de 550 Mo/s en lecture et 520 Mo/s en écriture. Il est garanti 3 ans.


> Voir l'offre
88,99 €SSD Crucial MX500 1 To à 88,99 €
Valable jusqu'au 30 Novembre

Amazon propose actuellement le SSD Crucial MX500 1 To à 88,99 € livré gratuitement. On le trouve ailleurs à partir de 110 €. Ce SSD salué par la critique par son rapport qualité prix imbattable offre des débits de 560 Mo/s en lecture et 510 Mo/s en écriture. Il est garanti 5 ans. Une très bonne affaire.


> Voir l'offre

Sujets relatifs
saisie matricielle d'une série de valeurs dans une plage de cellules
Calculer date en fonction d'une valeur dans une plage de cellules
utiliser résultat formule dans réf. plage cellules
Recherche de caractère dans une chaine alphanuméri
Recherche dans une plage de donnée
recherche d'espaces dans une chaîne de caractères
Définir une Plage de cellules dans une macro
Définir 1 plage de cellules dans 1 macro excel
fonction excel :recherche une lettre dans chaine
plage de cellules variable dans une fonction
Plus de sujets relatifs à recherche dans une chaîne comme dans une plage de cellules
 > Tous les forums > Forum Bureautique