Position d'un chiffre dans un texte excel

Fermé
aqwzsx - 23 janv. 2012 à 11:27
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 - 23 janv. 2012 à 16:03
Bonjour

J'ai une formule qui retourne la première position d'un chiffre dans une chaine de texte.

Chaine de texte 1 en cellule M2 : « Cass. com 15 février 2008»
Chaine de texte 2 en cellule M2 : « Cass. com 5 février 2008»

Mes chiffres sont dans la feuille « TABLES-REF » avec 1 en C5, 2 en C6, 3 en C7, 4 en C8, 5 en C9, 6 en C10, 7 en C11, 8 en C12, 9 en C13

Ma formule : « =CHERCHE(SUBSTITUE('TABLES-REF'!$C$5:$C$13;"""";"");M2 )»

Resultat pour la chaine de texte 1 => 11
Resultat pour la chaine de texte 2 => erreur


=> Cette formule fonctionne avec les chiffres 1 et 2 mais pas avec les autres et notamment 5
=> Si je mets 5 en C5 et 1 en C9 dans TABLES-REF => cela fonctionne pour ma chaine 2 mais dans le premier exemple, il me renverra la position du chiffre 5 et pas 1 ce qui n'est pas correct
=> Il faudrait qu'il trouve la première position d'un chiffre et que cela fonctionne avec tous les chiffres


Je suis un peu perdu
Merci de votre aide.
A voir également:

2 réponses

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 644
Modifié par pilas31 le 23/01/2012 à 15:35
Bonjour ccm81 et aqwzsx


Il existe une solution (suggérée par Microsoft) en utilisant une expression matricielle :

{=EQUIV(VRAI;ESTNUM(1*STXT(M2;LIGNE($1:$20);1));0)}

bien sur à valider par <Ctrl><Maj><Entrée>

le $1:$20 donne la longueur maxi de la chaine ici limitée à 20 caractères mais on peut remplacer le 20 par la longueur maxi de la chaine à analyser.

A+

Cordialement,
2
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
Modifié par ccm81 le 23/01/2012 à 16:04
> pilas31

bien vu
et bonne fin d' après midi
0
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
Modifié par ccm81 le 23/01/2012 à 15:16
bonjour

sans macro, je ne vois pas (ce qui ne veut pas dire que ...)

avec (une petite) macro
Alt-F11 pour accéder à l'éditeur puis Insertion/module et copier/coller
à utiliser dans la feuille comme une fonction excel

Public Function rangnum(s) 
Dim r As Long 
r = 1 
Do 
  If IsNumeric(Mid(s, r, 1)) Then 
    rangnum = r 
    Exit Function 
  End If 
  r = r + 1 
Loop While r <= Len(s) 
rangnum = 0 
End Function

bonne suite
0