XL 2010 Créer une forumle pour garder que les nombres et supprimer les lettres

Tony.R

XLDnaute Nouveau
Bonjour,

J'essaye de trouver une formule ( et non un vba) pour supprimer les lettres et garder que les chiffres.

Voici un exemple de ce dont j'ai et ce à quoi je veux tendre:

ACR65 -> 65
CAX303 -> 303
gxqk0580 -> 580
acr54L42 -> 54
VADcr82 -> 82
54 -> 54
00000ACR -> rien
A -> rien
ACR -> rien

Comme vous pouvez le voir il peut y avoir des Majuscules comme des minuscules, si des chiffres se trouvent après une série de chiffre puis des lettres comme dans l'exemple acr54L42 dans l'idéale, je voudrais garder que les 54 (si cela n'est pas possible alors 5442 serait bon aussi)

J'ai besoin d'une formule et non d'un VBA.

Merci par avance pour votre aide rapide.
Cdt Tony
 

Tony.R

XLDnaute Nouveau
Bonjour le Forum
Bonjour Tony.R

un essai en fichier joint

Cordialement
Merci Jocelyn pour ton retour,

Cette formule à l'air de fonctionner mais pas totalement j'ai un soucis pour l'image ci-dessous. J'aurais dû avoir 180 - 180 -189

et pour le cas de figure 00000ACR je dois rien avoir or là j'ai "0".

Le "0" au début ne doit pas être concidéré comme un chiffre c'est pour cela que dans mes exemple 00ACR180 je dois me retrouvé avec 180.

1628243052300.png


Merci pour ton retour :)

Cdt
 

Tony.R

XLDnaute Nouveau
re,

Peut être comme cela alors toujours en matricielle

Cordialement
On y est presque :p

C'est bizarre, pour les 6 premières ligne je devrais avoir 180 - 180 - 189 -190 -300 -302 .
Pourtant pour le reste ça à l'air bon comme par exemple les 3 dernières ligne où j'ai bien 180 - 180 - 18000.

En gros les 0 avant l'existant pas mais les 0 après existe :
exemple : 0123 = 123
1230 = 1230

1628244267940.png


Cdt
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour
J'ai besoin d'une formule et non d'un VBA.
L'un n'empêche pas l'autre et ceci est quand même plus court :
Code:
=NumExtrait(A1)
Avec, dans un module standard :
VB:
Function NumExtrait(ByVal Txt As String) As Double
   Dim P As Integer
   For P = 1 To Len(Txt)
      If Mid$(Txt, P, 1) <> "0" Then Exit For
      Next P
   If P > Len(Txt) Then Exit Function
   If P > 1 Then Txt = Mid$(Txt, P)
   For P = 1 To Len(Txt)
      If Mid$(Txt, P, 1) Like "#" Then Exit For
      Next P
   NumExtrait = Val(Mid$(Txt, P))
   End Function
 

Tony.R

XLDnaute Nouveau
Bonjour

L'un n'empêche pas l'autre et ceci est quand même plus court :
Code:
=NumExtrait(A1)
Avec, dans un module standard :
VB:
Function NumExtrait(ByVal Txt As String) As Double
   Dim P As Integer
   For P = 1 To Len(Txt)
      If Mid$(Txt, P, 1) <> "0" Then Exit For
      Next P
   If P > Len(Txt) Then Exit Function
   If P > 1 Then Txt = Mid$(Txt, P)
   For P = 1 To Len(Txt)
      If Mid$(Txt, P, 1) Like "#" Then Exit For
      Next P
   NumExtrait = Val(Mid$(Txt, P))
   End Function
Merci pour ton retour, j'ai réellement besoin de formule et non de VBA c'est une donnée importante.

De plus ta formule ne fonctionne pas …

cdt
 

Dranreb

XLDnaute Barbatruc
Mais c'est une formule, mais qui utilise une fonction perso écrite en VBA, et non une macro VBA à exécuter si c'était seulement ça que vous ne vouliez pas ! Évidemment si c'est le contexte qui empêche l'utilisation de toute forme de programmation VBA … Mais pourquoi ?
 

Jocelyn

XLDnaute Barbatruc
re,
Bonjour Dranreb, :)

Dranreb oui bien plus court mais bon comme d"hab je fais des formules capillotractées :oops:

Tony.r en considérant que tu dis que seules les 6 premieres lignes ne donnent pas le bon résultat sans fichier joint je ne vois pas ce qu'il faudrait corriger
Sur l'image je ne vois que le résultat et en aucunes manière la raison qui peut générer une erreur

Cordialement
 

Tony.R

XLDnaute Nouveau
re,
Bonjour Dranreb, :)

Dranreb oui bien plus court mais bon comme d"hab je fais des formules capillotractées :oops:

Tony.r en considérant que tu dis que seules les 6 premieres lignes ne donnent pas le bon résultat sans fichier joint je ne vois pas ce qu'il faudrait corriger
Sur l'image je ne vois que le résultat et en aucunes manière la raison qui peut générer une erreur

Cordialement
Voici le fichier joint. Seule les premières lignes ne fonctionnent pas à moins que j'ai moi même fait une erreur …

Cdt
 

Pièces jointes

  • REPORTING.xlsx
    18.8 KB · Affichages: 3

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87