Extraire text d'une chaine Alphanumerique

Résolu/Fermé
elglouton
Messages postés
188
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
12 juin 2020
- 11 oct. 2011 à 14:40
gbinforme
Messages postés
14934
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

3 réponses

Vaucluse
Messages postés
26495
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
8 avril 2022
6 256
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
188
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
12 juin 2020
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
16570
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
26 mai 2022
3 280
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
16570
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
26 mai 2022
3 280
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
188
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
12 juin 2020
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
16570
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
26 mai 2022
3 280
12 oct. 2011 à 09:45
je teste toujours avant de proposer...
https://www.cjoint.com/?3JmjRVgO4zD
0
gbinforme
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 610
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
188
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
12 juin 2020
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
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 610
13 janv. 2016 à 08:40
Bonjour,
Pourquoi réveiller un sujet 5 ans après pour faire le contraire de la demande ?
0