compter les nombres dans une chaîne de caractére

eduraiss

XLDnaute Accro
Bonsoir le forum

voila en cellule a1 par exemple j'ai une chaîne ainsi constituée 1c 2e 3f 4p

comment avoir le résultat en B1 de 10

En quelque sorte additionner les nombres de la chaine

Merci a vous
 

Cousinhub

XLDnaute Barbatruc
Re : compter les nombres dans une chaîne de caractére

bonsoir,
en supposant ton"texte" dans la cellule A1

Code:
Sub nb_dans_texte()
With Range("A1")
    For i = 1 To .Characters.Count
        If IsNumeric(.Characters(i, 1).Text) Then som = som + CDbl(.Characters(i, 1).Text)
    Next i
End With
MsgBox som
End Sub
 

JeanMarie

XLDnaute Barbatruc
Re : compter les nombres dans une chaîne de caractére

Bonsoir

Formule à tester. Formule à valider par les touches Ctrl+Shift+Entrer
Code:
=SOMME(FREQUENCE(SI(ESTERR(STXT(A1;LIGNE(DECALER(B1;;;NBCAR(A1)));1)*1);"";STXT(A1;LIGNE(DECALER(B1;;;NBCAR(A1)));1)*1);{0;1;2;3;4;5;6;7;8;9})*{0;1;2;3;4;5;6;7;8;9;0})

La partie LIGNE(DECALER(B1;;;NBCAR(A1)), dans la fonction STXT, permet de prendre caractère par caractère la chaine de la Cellule A1.
La cellule référencée en B1 doit toujours commencer à la ligne 1. (attention lors du glisser).

FREQUENCE permet de retourner une matrice de 10 valeurs, indiquant le nombre de caractères numériques trouvés dans la chaîne.

ATTENTION, cette formule ne permet pas de calculer les nombres de plusieurs chiffres.

@+Jean-Marie
 

JeanMarie

XLDnaute Barbatruc
Re : compter les nombres dans une chaîne de caractére

Re...

Autre formule, plus courte, mais sans validation par les trois touches.
Code:
=SOMME(FREQUENCE(CODE(STXT(A1;LIGNE(DECALER(A1;;;NBCAR(A1)));1));{48;49;50;51;52;53;54;55;56;57;58})*{0;1;2;3;4;5;6;7;8;9;0;0})
NOTA, toujours la restriction des nombres à deux chiffres.

@+Jean-Marie
 

Discussions similaires

Réponses
4
Affichages
216

Statistiques des forums

Discussions
312 490
Messages
2 088 883
Membres
103 981
dernier inscrit
vinsalcatraz