Extraire text d'une chaine Alphanumerique

Résolu/Fermé
elglouton Messages postés 189 Date d'inscription dimanche 19 avril 2009 Statut Membre Dernière intervention 11 novembre 2022 - 11 oct. 2011 à 14:40
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 13 janv. 2016 à 08:40
Bonjour,

Je cherche à extraire le texte d'une chaine de caractère en déterminant la position du 1er nombre rencontré

2 ECHELLE DE TEMPERATURE 0-4 0

Pour extraire le 1er 2 j'ai utilisé : =GAUCHE(N° de la cellule;2) sachant que pour le 1er nombre cela n'exede jamais deux caractères

Et je souhaiterai extraire le texte "ECHELLE DE TEMPERATURE" dans un second temps j'ai utiliser =SUBSTITUE(GAUCHE(B28;TROUVE(" ";B28));H28;"";1) le problème est qu'il n'y a pas toujours un double espace après le texte mais il y à toujours un caractère numérique

Je souhaiter donc savoir si il est possible d'utiliser la fonction trouve (caractère numérique) dans cette formule ?

Merci d'avance pour vos reponses

A voir également:

3 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 11/10/2011 à 18:47
Bonjour
le nombre de caractères est il constant après le dernier espace?
y a t il toujours le même nombre de blanc avant le 1° 0,
crdlmnt

Ps le problème étant que même un 0 au milieu d'un texte ne peut pas être considéré par excel comme une valeur num
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
elglouton Messages postés 189 Date d'inscription dimanche 19 avril 2009 Statut Membre Dernière intervention 11 novembre 2022 1
12 oct. 2011 à 08:58
Bonjour Vaucluse

Et bien non malheureusement je n'ai pas toujours le même nombre de caractère dans la cellule et pas le même nombre de caractères avant chaque espaces et pas le meme nombre de blanc avant le 1er chiffre.

Donc c'est pas cool du tout.
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
12 oct. 2011 à 09:03
Le glouton, excuses moi d'avoir 'essayé de t'aider. merci pour ton Bonjour
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
Modifié par michel_m le 11/10/2011 à 19:18
Bonjour

Pour le fun
texte en B24 par ex

=extraire_maj(B24)

avec la fonction personnalisée:
Function extraire_maj(texto As String)  
Dim reg As Object  
Dim extraction As Object  
    Set reg = CreateObject("vbscript.regexp")  
    reg.Global = True  
    reg.Pattern = "([A-Z ])"  
      
    Set extraction = reg.Execute(texto)  
    For Each maj In extraction  
        extraire_maj = extraire_maj & maj.Value  
    Next maj 
    extraire_maj = Trim(extraire_maj) 
End Function

Michel
0
elglouton Messages postés 189 Date d'inscription dimanche 19 avril 2009 Statut Membre Dernière intervention 11 novembre 2022 1
12 oct. 2011 à 09:09
Bonjour Michel_m

Je n'arrive pas à faire fonctionner cette Macro
J'ai mis la macro dans la feuille correspondante et la formule renvoie a la cellule texte mais j'ai une erreur #NOM?

Merci pour votre réponse rapide.
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
12 oct. 2011 à 09:45
je teste toujours avant de proposer...
https://www.cjoint.com/?3JmjRVgO4zD
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
12 oct. 2011 à 10:15
Bonjour à tous,

J'ai mis la macro dans la feuille correspondante

Une fonction se met dans un module :)
0
elglouton Messages postés 189 Date d'inscription dimanche 19 avril 2009 Statut Membre Dernière intervention 11 novembre 2022 1
12 oct. 2011 à 10:23
C'est vrai ça marche nikel je m'excuse si tu as pensé que je disais que ça ne marcher pas je voulais dire que je n'arriver pas à le faire fonctionner et demander la marche à suivre mais j'ai pas du être clair.

Je l'avais poser dans le module d'un autre classeur ouvert tromper de fichier...

Encore Sorry et merci pour ta réponse c'est parfait
0
Function NumChaine(chaine)
temp = ""
For i = 1 To Len(chaine)
c = Mid(chaine, i, 1)
If c >= "0" And c <= "9" Or c = "." Then temp = temp & c
Next i
NumChaine = temp
End Function


exemple:
En A1 : Tunisie 2011
En B1: =NumChaine(A1) ==> 2011
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
13 janv. 2016 à 08:40
Bonjour,
Pourquoi réveiller un sujet 5 ans après pour faire le contraire de la demande ?
0