fonction "cherche" mais en partant de la droite de la chaine de caractere

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

philppe27

XLDnaute Occasionnel
Bonjour,

Je dois rechercher un espace dans une chaîne de caractère mais en partant de la droite de cette chaîne de caractère pour ensuite en faire un extrait (en effet, il peut y avoir dans la chaîne plusieurs espaces).
Je connais la fonction "cherche" mais qui recherche en partant de la gauche de la chaîne.
Je pense qu'il doit y avoir une astuce pour obtenir ce résultat mais cela m'échappe.

Merci d'avance pour vos réponses,

Cordialement.
 
Re : fonction "cherche" mais en partant de la droite de la chaine de caractere

Bonjour philppe27,
Bonjour à toutes et à tous.

La jointure d'un fichier comme exemple de votre problème sans données confidentielles permettra de comprendre le problème d'une part et apportera beaucoup d'aide d'autre part.

Cordialement.

BCharef
 
Re : fonction "cherche" mais en partant de la droite de la chaine de caractere

Bonjour,

A1 contient aaa bbbb ccc dddd

=NBCAR(A1)-EQUIV(" ";STXT(A1;NBCAR(A1)-LIGNE($1:$255);1);0)
Valider avec maj+ctrl+entrée

Donne la position du dernier espace

=DROITE(A1;EQUIV(" ";STXT(A1;NBCAR(A1)-LIGNE($1:$255);1);0)) donne dddd

ou

=CHERCHE("|";SUBSTITUE(A1;" ";"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))))

JB
 
Dernière édition:
Re : fonction "cherche" mais en partant de la droite de la chaine de caractere

Bonjour à tous
Personnellement, je passe par la fonction
Code:
[COLOR="DarkSlateGray"]Function renverse(s As String) As String
Dim i As Integer
   For i = 1 To Len(s)
      renverse = Mid$(s, i, 1) & renverse
   Next i
End Function[/COLOR]
et j'écris
Code:
[COLOR="DarkSlateGray"]=renverse(GAUCHE(renverse(A1);CHERCHE(" ";renverse(A1))-1))[/COLOR]
On peut évidemment donner un nom plus court à la fonction pour raccourcir l'écriture de la formule.​
ROGER2327
#1969
 
Re : fonction "cherche" mais en partant de la droite de la chaine de caractere

bonjour a tous (Que de beau monde !!)

Quitte a ecrire une fonction:

Code:
Function derriere_dernier_espace(cellule As Range)
  derriere_dernier_espace = Mid(cellule, InStrRev(cellule, " ") + 1)
End Function
 
Re : fonction "cherche" mais en partant de la droite de la chaine de caractere

Re...
(...)
ROGER2327: Why not 😕

Code:
Function envers(s As String) As String
envers = StrReverse(s)
End Function
Tout simplement parce que j'ai ressorti une très vieille fonction... ...et que j'ai oublié de la moderniser.
Il va de soit que l'utilisation de StrReverse s'impose.​
ROGER2327
#1970
 
Re : fonction "cherche" mais en partant de la droite de la chaine de caractere

Bonjour,

A1 contient aaa bbbb ccc dddd

=NBCAR(A1)-EQUIV(" ";STXT(A1;NBCAR(A1)-LIGNE($1:$255);1);0)
Valider avec maj+ctrl+entrée

Donne la position du dernier espace

=DROITE(A1;EQUIV(" ";STXT(A1;NBCAR(A1)-LIGNE($1:$255);1);0)) donne dddd

ou

=CHERCHE("|";SUBSTITUE(A1;" ";"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))))

JB

Bonjour,

Pardon de déterrer un aussi vieux sujet mais je n'arrive pas à faire fonctionner votre formule :
=CHERCHE("|";SUBSTITUE(A1;" ";"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))))

Je cherche la position d'un mot composé de 11 caractères dans une chaine de texte contenant plusieurs fois ce mot (la cellule contient le nombre maxi de caractères autorisés par Excel (32.759)).

Concrètement je modifie votre formule comme suit :
=CHERCHE("|";SUBSTITUE(A1;"<Placemark>";"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"<Placemark>";"")))) et ça me renvoi #VALEUR!

J'ai essayé vos autres formules et c'est la même chose. Dès qu'il y a plus de 2 caractères ça met #VALEUR!

Quelle serait la parade, svp?
Merci pour votre aide.
 
Dernière édition:
Bonsoir

=CHERCHE("|||";SUBSTITUE(A1;"<Placemark>";"|||";(NBCAR(A1)-NBCAR(SUBSTITUE(A1;"<Placemark>";"")))/NBCAR("<Placemark>")))

Bonsoir et merci beaucoup. Ca fonctionne.

Je constate que votre formule marche pour la recherche d'un mot (ensemble de plusieurs caractères) ou même pour la recherche d'un seul caractère.

En revanche, si on retire la dernière partie (/NBCAR("<Placemark>"), pour retrouver l'ancienne formule postée plus au haut, alors la formule renvoie une erreur pour la recherche d'un mot (ensemble de plusieurs caractères) mais fonctionne correctement pour la recherche d'un seul caractère.

Si vous pouviez m'expliquer pourquoi Excel à besoin de diviser à la fin de la formule (/NBCAR("<Placemark>") pour la recherche d'un mot mais pas pour la recherche d'un seul caractère ça m'intéresserait de comprendre.

Merci beaucoup.
 
Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier à acheter, rien à vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer à vous accompagner.
Soutenez-nous en souscrivant à un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est joué.

Je soutiens la communauté et j’accède à mon compte membre

Discussions similaires

Réponses
5
Affichages
395
Retour