Extraction de nombres dans un texte

Fermé
Ellana B. - 24 juil. 2009 à 09:36
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 24 juil. 2009 à 20:30
Bonjour, je suis stagiaire dans un service de comptabilité et je travaille sur des tableaux excel.
J'aimerai pouvoir extraire des nombres situés à l'extrême droite de mes textes, le problème étant que le nombre de caractère est m'est encore inconnu (je prépare des tableaux vierges).
Existe-t-il une fonction similaire à =DROITE(texte;no_car) mais avec condition?
merci pour toute aide donnée!

6 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
24 juil. 2009 à 09:48
Bonjour,

Les conditions c'est à toi de les calculer par formule...
Ca pourrait être à partir d'une chaine ou d'un caractère précis ou...
Il faudrait que tu donne des exemples de ce que tu veux.
eric
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
24 juil. 2009 à 09:51
Bonjour,
A mon avis, c'est à ton maître de stage de te lire:
nombre de chiffres à la droite (de combien à combien)
il ya t il d'autres chiffres dans le texte: à gauche, au milieu...

sinon ce sera une usine à gaz peu fiable
Dans l'attente
0
xkristi Messages postés 4264 Date d'inscription lundi 18 décembre 2006 Statut Membre Dernière intervention 19 août 2022 564
24 juil. 2009 à 10:12
Salut

je fais vite

Tu peux imbriquer des fonctions du style
tu peux connaître le nombre des caractères de ta cellule NBCAR
la position où se trouve le 1er caractère du texte recherché
et tu soustrais la longueur du texte -1

444BNP8511 DROITE(A1;NBCAR(A1)-CHERCHE("BNP";A1;1)-2)

Tout dépend la forme du texte ou des textes de ta cellule

0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
24 juil. 2009 à 10:32
re, bonjour xlchristi

cette fonction personnalisée t'extrait les N chiffres à la fin de tes textes (si c'est une lettre tu as "")

Function dernierschiffres(texto As String) As String
Dim longueur As Long, result As String
Dim chifr

longueur = Len(texto)
For longueur = Len(texto) To 1 Step -1
    chifr = Mid(texto, longueur, 1)
    On Error Resume Next
        chifr = CInt(chifr)
    If Err.Number > 0 Then
             dernierschiffres = result
         Exit Function
End If
result = chifr & result
Next
dernierschiffres = result
End Function


si tu as 23ABVDR5X234 la fonction te renvoie 234
0
xkristi Messages postés 4264 Date d'inscription lundi 18 décembre 2006 Statut Membre Dernière intervention 19 août 2022 564
24 juil. 2009 à 19:07
Salut Michel _m

C'est toujours mieux avec une macro qui traite tous les cas de figure
c'est là qu'on voit les "pro" BRAVO (sourire)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
24 juil. 2009 à 19:27
Bonjour tout le monde,

Et une autre solution par formule :
=STXT(A1;MAX((STXT(A1;LIGNE(1:30);1)>"9")*LIGNE(1:30))+1;30)
formule matricielle à valider par shift+ctrl+entrée
Le nombre après la dernière lettre est extrait.

Pour ne pas alourdir j'ai considéré qu'il n'y avait que des lettres en plus des chiffres.
Les ! " # $ % & ' ( ) * + , - . / sont considérés comme des chiffres...
Mais il peut y avoir des : ; < = > ? @ et des [ \ ] ^ _ ` :-)

eric
0
xkristi Messages postés 4264 Date d'inscription lundi 18 décembre 2006 Statut Membre Dernière intervention 19 août 2022 564
24 juil. 2009 à 19:36
En passant tres vite
salut Eriic , pas encore en vacances ?
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
24 juil. 2009 à 20:30
et bé non
J'ai pris un tit bout en juin et maintenant il faut attendre septembre :-s
Et toi, c'est pour bientôt la bronzette ? :-)
0