bonsoir
je n'arrive pas a faire une somme automatique des chiffres d'un nombres décimal.
exemple:
2.5 donnera 2+5 = 7
3.5 donnera 3+5 = 8
116.5 donnera 1+1+6+5 =13 = 1+3 = 4
merci pour toute aide
Une proposition (un peu lourde et très en retard ! ) par fonction personnalisée qui accepte d'éventuelles caractères alphabétiques, le point et la virgule; à copier dans un module standard:
Code:
Function SomChiffre(MaCel)
Dim MaSomme, Temp, i
Temp = MaCel.Value
While Temp >= 10
MaSomme = 0
For i = 1 To Len(Temp)
If IsNumeric(Mid(Temp, i, 1)) Then MaSomme = MaSomme + Mid(Temp, i, 1)
Next
Temp = MaSomme
Wend
SomChiffre = Temp
End Function
Pour aller un peu plus loin, pour que 116.5 donne bien 4 et pas 13 (1+1+6+5 =13 = 1+3 = 4), donc en utilisant deux fois la proposition de R@chid )), avec le nombre 116.5 en A1
Pour aller un peu plus loin, pour que 116.5 donne bien 4 et pas 13 (1+1+6+5 =13 = 1+3 = 4), donc en utilisant deux fois la proposition de R@chid )), avec le nombre 116.5 en A1
Function sommeRéduite(v$) 'ROGER2327
Dim i&, c$, s As Variant
For i = 1 To Len(v)
c = Mid$(v, i, 1)
If IsNumeric(c) Then s = s + CInt(c)
Next
If IsEmpty(s) Then sommeRéduite = "" Else If s Then sommeRéduite = (s - 1) Mod 9 + 1
End Function