Isoler des chiffres

Salut forum

Dans une cellule excel, il y a des lettres et des chiffres, jusqua 120 caratères. Je cherche une fonction qui m'indique quel est la position du premier chiffre rencontré dans cette cellule, cela serait utile pour extraire le texte qui est parmi les chiffres.

Merci d'avance

Bobby

Salut Bobby et le Forum

Avec une fonction personnalisée

=FirstNumber(Cellule)

La fonction retourne zéro si pas de chiffres dans la cellule.

Function FirstNumber(Cellule As Range)
Application.Volatile
Dim X As Integer
For X = 1 To Len(Cellule)
  If IsNumeric(Mid(Cellule, X, 1)) Then FirstNumber = X: Exit Function
Next X
End Function

Mytå

Bonsoir

Pour les fous de formules, et juste à titre de curiosité.

Il vaudrait mieux avoir Excel 2007 pour pouvoir imbriquer les formules car avec les versions antérieures, aucune chance.

Cordialement,

Amadéus

https://www.excel-pratique.com/~files/doc/rF6vJPosition2.xls

Salut le Forum

Amadéus un petit bogue avec tes formules, si la position du premier

chiffre est de 1 à 9 on recoit #VALEUR comme retour.

Déjà que la formule est un exploit

Mytå

Bonjour Mytå, bonjour le forum

Tu as bien sur raison, Mytå, à force de regarder loin devant, on perd de vue le bout de ses pieds".Ceci dit, je me devais de faire la correction.

Ci-joint fiichier corrigé

Cordialement,

Amadéus

https://www.excel-pratique.com/~files/doc/PositionV3.xls

Bonjour à tous,

Comme je me suis également penché sur ce problème et que ma solution me paraît quand même plus simple - et qui plus est, semble-t-il illimitée - je vous la livre aussi.

https://www.excel-pratique.com/~files/doc/RJHagIsoler_des_chiffres.xls

Salut le Forum

Basé sur la formule de Yvouille, sans colonne intermédiaire

Peut-on faire plus simple....

=MIN(SI(ESTNUM(CHERCHE({0;1;2;3;4;5;6;7;8;9};$A2));CHERCHE({0;1;2;3;4;5;6;7;8;9};$A2);""))

Mytå

Bonjour Mytå

Je n'ai qu'un mot à ajouter:

Chapeau!

Amadéus

Je l’ai cherchée, celle-là !

Je surenchéri donc : Chapeau bas !

Merci Amadéus et Yvouille

Manque juste le retour de Bobby sur ce fil.

Message qui vous a été envoyé a écrit :

Salut Myta.

Super ta solution, c'est exactement ce dont j'ai besoin.

J'ai aussi essayé ta fonction FirstNumber, qui va très bien aussi.

Salutations

Bobby

Mytå

Edition pour ajout de la réponse de Bobby

Hello excel crack

Vouaouhh, génial ta solution Myta. Tout à fait ce dont j'ai besoin.

Merci aussi à tous les personnes qui ont pris du temps pour cette solution.

By the way, si je modifie cette fonction et les valeurs dans la matrice entre { }, cela ne marche pas toujours bien que les accolades sont toujours présentes. Est-ce que je fais qqch de faux. A l'ocaze si qqun a une idée, merci d'avance

A tout soudain.

Bobby

Re le forum

Bobby sans la modification de la formule difficile de te donner

une solution. Donne la formule en exemple qui pose problème.

A te lire

Mytå

Salut forum

Salut Myta

Voici cette fonction, qui selon moi doit retourner VRAI ou FAUX

=ESTNUM(CHERCHE({0;1;2;3;4;5;6;7;8;9};$A2))

RE: à l'ocaze, merci pour une réponse

A tout soudain

Bobby

Re le forum

Bobby la valeur retournée pour la matrice {0;1;2;3;4;5;6;7;8;9}

va te donner VRAI ou FAUX pour le zéro.

Car pour $A2=V421 la matrice de retour est

{FAUX;VRAI;VRAI;FAUX;VRAI;FAUX;FAUX;FAUX;FAUX;FAUX}

La réponse est donc FAUX

Faut faire attention de travailler sur tes matrices de longueur égale

Mytå

Salut Forum

Salut Myta

Oups, putôt technique, mais je te remercie encore pour toutes ces précisions

Bonne soirée, parait qu'il y a un débat à la télé...

Salutations

Bobby

Bonjour à tous,

Une autre piste, avec une fiormule matricielle :

=EQUIV(1;ESTNUM((STXT(A1;LIGNE(INDIRECT("1:9"));1)*1))*1;0)

J'ai fait plusieurs essais, sans rencontrer de problèmes.

@+

Salut le Forum

Thibo tu ne prends pas en compte le zéro comme étant un chiffre.....

Mytå

Salut myta,

Le principe de la formule :

STXT(A1;LIGNE(INDIRECT("1:9"));1)

avec LIGNE et INDIRECT permet en fait de "découper" caractère par caractère la chaîne en A1.

Ensuite, avec ESTNUM, je renvoie VRAI ou FAUX pour chaque caractère, transformé en 1 ou 0 (avec le multiplié par 1)

Reste enfin avec EQUIV à trouver l'emplacement du 1er 1 qui correspond au 1er chiffre

Dans l'exemple, j'ai limité à 9 caractère, mais on peut bien entendu aller plus loin.

Amitiés Excelliennes

@+

Rechercher des sujets similaires à "isoler chiffres"