Bonjour Jef, Hervé
Ci-joint une proposition à l'aide d'une formule matricielle, à valider par Ctrl+Shift+Entrer.
=SUBSTITUE('0'&SOMME(SI(ESTNUM(STXT(C3;LIGNE($1:$255);1)*1);STXT(C3;LIGNE($1:$255);1);0)/(10^LIGNE($1:$255)));',';'')*1
Dans la formule, la cellule C3 contient la donnée texte
La valeur 255 dans la plage $1:$255, correspond au nombre de caractères maxi d'une cellule, tu peux l'adapter suivant le nombre maxi de caractères de tes valeurs texte.
Elle permet de retourner une matrice contenant une série de valeur{1;2;3;4;5.....252;253;254;255} qui ensuite va servir à séparer chaque caractère de la valeur texte par la fonction STXT.
le ^ correspond à la fonction puissance. (10^3 ou 10 * 100)
Si tu travailles avec un séparateur décimal '.' remplace le ',' par '.'
Cette fonction retourne une valeur erronée quand les chiffres ne sont pas contigus. (ex 30mars05 retourne 30000005)
Ci dessous une fonction matricielle, qui auto-détermine la taille de la matrice suivant le nombre de caractères de la valeur texte, et défini aussi le type de séparateur décimal.
=SUBSTITUE('0'&SOMME(SI(ESTNUM(STXT(C3;LIGNE(DECALER($A1;;;NBCAR(C3)));1)*1);STXT(C3;LIGNE(DECALER($A1;;;NBCAR(C3)));1);0)/(10^LIGNE(DECALER($A1;;;NBCAR(C3)))));SI(ESTNUM('0,1'*1);',';'.');'')*1
@+Jean-Marie
Message édité par: JeanMarie, à: 30/03/2005 17:54