"Cherche" de droite à gauche

nono555

XLDnaute Occasionnel
Bonjour,

Je voudrais savoir s'il existe une fonction excel permettant de chercher un caractère dans un texte mais en lisant le texte de droite à gauche et non de gauche à droite.

Par ailleurs, mon objectif est le suivant :

Si mon texte est "ABCDE-11-12-13" alors je veux le séparer en trois : "ABCDE-11"; "ABCDE-12";"ABCDE-13".
Si quelqu'un a une idée.

Merci.

Nono
 

JNP

XLDnaute Barbatruc
Re : "Cherche" de droite à gauche

Bonjour le fil :),
Alors en Excel je ne sais pas mais en VBA il y a la fonction Right(string, length) qui répond à tes besoins.
T'es sûr de ton coup, là :p ?
Ça, c'est l'équivalent de la formule
Code:
=DROITE(Chaîne;Nbre de caractère)
:confused:...
En VBA, c'est
Code:
InStrRev("ABCDE-11-12-13", "-")
:rolleyes:...
Mais quitte à passer par VBA, autant passer par un Split ;)...
Code:
Function Nono555(MaString As String, Position As Byte) As String
If Position <= UBound(Split(MaString, "-")) Then Nono555 = Split(MaString, "-")(0) & "-" & Split(MaString, "-")(Position)
End Function
avec si texte de départ en A1
Code:
=Nono555(A1;1)
puis 2, puis 3 :p...
Bonne suite :cool:
 

nono555

XLDnaute Occasionnel
Re : "Cherche" de droite à gauche

Merci beaucoup pour toutes ces infos. C'est très bien.

Par ailleurs, je rencontre souvent un problème ce conversion de données. En effet, je rentre une formule dans une cellule et quand je la valide sur entrée elle se calcule correctement. Le problème est que quand je la tire, le résultat est identique alors je dois soit passer sur chacune des cellules et valider par entrée soit colonne par colonne utiliser la conversion de données.

Pouvez-vous m'indiquer d'où vient ce problème et comment le contourner.

Merci.

Nono
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : "Cherche" de droite à gauche

Bonjour,

Voir PJ

Formule:
1er item :=GAUCHE(A1;CHERCHE("|";SUBSTITUE(A1;"-";"|";2))-1)
2eme item: =GAUCHE(A1;CHERCHE("-";A1))&STXT(A1;CHERCHE("|";SUBSTITUE(A1;"-";"|";2))+1;CHERCHE("|";SUBSTITUE(A1;"-";"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"-";""))))-CHERCHE("|";SUBSTITUE(A1;"-";"|";2))-1)
3e item:=GAUCHE(A1;CHERCHE("-";A1))&DROITE(A1;EQUIV("-";STXT(A1;NBCAR(A1)-LIGNE($1:$255);1);0))

VBA:
Function item(chaine, pos)
Application.Volatile
a = Split(chaine, "-")
item = a(0) & "-" & a(pos)
End Function



Position de '-' par la droite dans ABCDE-11-12-13

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


JB
 

Pièces jointes

  • Classeur1.xls
    21.5 KB · Affichages: 87
  • Classeur1.xls
    21.5 KB · Affichages: 86
  • Classeur1.xls
    21.5 KB · Affichages: 100
  • Classeur2.xls
    21 KB · Affichages: 85
  • Classeur2.xls
    21 KB · Affichages: 84
  • Classeur2.xls
    21 KB · Affichages: 83
Dernière édition:

david84

XLDnaute Barbatruc
Re : "Cherche" de droite à gauche

Bonsoir,
a tester (validation classique) :
Code:
=GAUCHE($A1;CHERCHE("-";$A1;1)-1)&STXT($A1&"-";CHERCHE("|";SUBSTITUE($A1&"-";"-";"|";COLONNES($A:A)));CHERCHE("|";SUBSTITUE($A1&"-";"-";"|";COLONNES($A:B)))-CHERCHE("|";SUBSTITUE($A1&"-";"-";"|";COLONNES($A:A))))
A+
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : "Cherche" de droite à gauche

Salut @ tous,
supposant que le texte est en A1,
en B1 :
HTML:
=GAUCHE($A1;TROUVE("-";$A1))&STXT($A1;TROUVE("*";SUBSTITUE($A1;"-";"*";COLONNES($A:A)))+1;2)
@ valider par simple Entree
@ tirer vers la droite
N.B : foctionne si le texte et sous la forme TEXTE-00-00-00
Amicalement

Edit : Merci David pour $A1&"-"
en B1 :
Code:
=GAUCHE($A1;TROUVE("-";$A1))&GAUCHE(STXT($A1;TROUVE("*";SUBSTITUE($A1;"-";"*";COLONNES($A:A)))+1;100);TROUVE("+";SUBSTITUE(STXT($A1&"-";TROUVE("*";SUBSTITUE($A1&"-";"-";"*";COLONNES($A:A)))+1;100);"-";"+";COLONNE($A:B)))-1)
 
Dernière édition:

Discussions similaires

Réponses
0
Affichages
256

Statistiques des forums

Discussions
312 508
Messages
2 089 143
Membres
104 050
dernier inscrit
Pepito93100