Extraire que les chiffres d'une cellule Excel

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Armand11

XLDnaute Occasionnel
Bonjour à toute la communauté Excel Downloads,
Je souhaite pouvoir extraire d'un libellé alphanumérique d'une cellule uniquement les chiffres mentionné dans ce libellé... ? Je ne peux pas malheureusement utiliser les fonctions =Droite ou = Gauche voire même =STXT car d'une ligne à l'autre l'information que je cherche à extraire n'est pas au même endroit.... et en plus les chiffres que je souhaite extraire peuvent être composé de 3 chiffres ou de 4 ou de 2 etc.....

Je vous joins un fichier pour exemple...

Merci pour votre aide à nouveau...
Armand
 

Pièces jointes

Hello
avec une fonction personalisée à mettre dans un module vba standard
puis tu l'utilises comme une fonction standard d'excel
en E4
=RecupChiffres2(A4)

VB:
Function RecupChiffres2(target As Range) As Long


For i = 1 To Len(target)
    If IsNumeric(Mid(target, i, 1)) Then
        Final = Final & Mid(target, i, 1)
    End If
Next i
RecupChiffres2 = CInt(Final)
End Function
 
Bonjour le forum, Bonne année et meilleurs voeux à la communauté.

je tombe sur cette discution car je cherchais cette solution...

y aurait'il une possibilité pour modifier le code de vgendron pour que les signes + et - soit également extrait et ainsi donc exécute le calcule :

exemple ; 3 bananes + 2 pommes donne 3+2 soit 5 en resultat.

merci d'avance

Sir berthoult
 
Bonsoir Sirberthoult, bonsoir le fil,
Peut être avec ceci :
VB:
Function Compte(target As Range) As Long
For i = 1 To Len(target)
    If IsNumeric(Mid(target, i, 1)) Or Mid(target, i, 1) = "+" Or Mid(target, i, 1) = "-" Then Final = Final & Mid(target, i, 1)
Next i
Compte = Evaluate(Final)
End Function
 

Pièces jointes

Bonjour le forum, Sylvanus,

j'ai tenté de corriger le code en ajoutant IsEmpty... de différente facon pour que si on utilise cette formule sur une cellule vide cela considére = 0 mais je n'y arrive décidément pas...

en fait j'additionne des cellules dont le contenu varie, pour obtenir une somme et parfois la cellule est vide, parfois la cellule contient un nombre unique( 10 ) ou (10 bananes) et parfois elle contient une addition simple ( 3 bananes +2 pommes), la formule ne fonctionne pas quand elle rencontre une cellule vide.

pouvez vous m'aider à modifier le code.

merci
 
Hello,
tu peux essayer :
VB:
Function Compte(target As Range) As Long
Compte=0
For i = 1 To Len(target)
    If IsNumeric(Mid(target, i, 1)) Or Mid(target, i, 1) = "+" Or Mid(target, i, 1) = "-" Then Final = Final & Mid(target, i, 1)
Next i
if Not Final = "" then Compte = Evaluate(Final)
End Function
Ami calmant, J.P
 
Bonjour à tous🙂,
Une autre fonction sans Evaluate :
VB:
Function Combien(txt$)
Dim som, x
   For Each x In Split(Replace(Replace(txt, "-", "+-"), ",", "."), "+"): som = som + Val(x): Next
   Combien = som
End Function
 

Pièces jointes

Dernière édition:
Bonjour ma pomme,

Tu me sauves...

je venais de m'appercevoir apres plusieurs essais que j'avais une erreur avec certaine valeurs...
si je faisait dans une cellule =Compte(G38) avec en G38 une valeur de 3 ou 5 ou 6 cela me donnais 1 ou -4146... mais sinon le code fonctionnait pour toute les autres valeurs et pour les additions diverses normalement... un vrai mystére!

bref avec ta fonction tout fonctionne, plus d'erreurs ni de valeurs suspecte...

merci beaucoup !

je joins mon fichier avec le mystére si cela intérésse ...
 

Pièces jointes

Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier à acheter, rien à vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer à vous accompagner.
Soutenez-nous en souscrivant à un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est joué.

Je soutiens la communauté et j’accède à mon compte membre

Discussions similaires

Réponses
5
Affichages
526
Retour