Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

addition des chiffres composant un nombre.

11 réponses
Avatar
Jed
Bonjour a tous,
J'aimerai savoir comment codé une addition en vba qui prendrait les chiffres
composant un nombre? Exemple : j'ai 3537 j'aimerai aditionné 3+5+3+7.
J'ai essayé split mais je galère un peu .
Je peux connaitre la longueur du nombre par len() mais comme faire une
boucle pour additionner les differents chiffres?
Merci de vos conseils.
Cdlt
Jed

10 réponses

1 2
Avatar
MichDenis
'-------------------------
Sub test()
Dim S As Long, T As String
T = 12365
For a = 1 To Len(T)
S = S + Mid(T, a, 1)
Next
MsgBox "La somme des éléments de " & T & _
" est de " & S

End Sub
'-------------------------


"Jed" a écrit dans le message de news:

Bonjour a tous,
J'aimerai savoir comment codé une addition en vba qui prendrait les chiffres
composant un nombre? Exemple : j'ai 3537 j'aimerai aditionné 3+5+3+7.
J'ai essayé split mais je galère un peu .
Je peux connaitre la longueur du nombre par len() mais comme faire une
boucle pour additionner les differents chiffres?
Merci de vos conseils.
Cdlt
Jed
Avatar
MichDenis
Tu peux aussi créer une fonction personnalisée :

'------------------------
Sub test()
MsgBox Selt(12345)
End Sub
'------------------------
Function Selt(T As String) As Long
On Error Resume Next
For a = 1 To Len(T)
Selt = Selt + Mid(T, a, 1)
Next
End Function
'------------------------


"MichDenis" a écrit dans le message de news:

'-------------------------
Sub test()
Dim S As Long, T As String
T = 12365
For a = 1 To Len(T)
S = S + Mid(T, a, 1)
Next
MsgBox "La somme des éléments de " & T & _
" est de " & S

End Sub
'-------------------------


"Jed" a écrit dans le message de news:

Bonjour a tous,
J'aimerai savoir comment codé une addition en vba qui prendrait les chiffres
composant un nombre? Exemple : j'ai 3537 j'aimerai aditionné 3+5+3+7.
J'ai essayé split mais je galère un peu .
Je peux connaitre la longueur du nombre par len() mais comme faire une
boucle pour additionner les differents chiffres?
Merci de vos conseils.
Cdlt
Jed
Avatar
Jacques93
Bonjour Jed,

Sans passer par une chaîne :

Dim l As Long, r As Long, t As Long

l = 3537
r = 0: t = 0
t = l
While t > 0
r = r + (t - ((t 10) * 10))
t = (t 10)
Wend
MsgBox r

Bonjour a tous,
J'aimerai savoir comment codé une addition en vba qui prendrait les chiffres
composant un nombre? Exemple : j'ai 3537 j'aimerai aditionné 3+5+3+7.
J'ai essayé split mais je galère un peu .
Je peux connaitre la longueur du nombre par len() mais comme faire une
boucle pour additionner les differents chiffres?
Merci de vos conseils.
Cdlt
Jed



--
Cordialement,

Jacques.

Avatar
garnote
Bonjour Jed,

Si ton nombre se trouve dans la cellule A1 :

Sub Addition()
Dim n As String
Dim s As Long
n = Range("A1").Value
For i = 1 To Len(n)
s = s + Mid$(n, i, 1)
Next i
MsgBox s
End Sub

Serge

"Jed" a écrit dans le message de news:
Bonjour a tous,
J'aimerai savoir comment codé une addition en vba qui prendrait les chiffres
composant un nombre? Exemple : j'ai 3537 j'aimerai aditionné 3+5+3+7.
J'ai essayé split mais je galère un peu .
Je peux connaitre la longueur du nombre par len() mais comme faire une
boucle pour additionner les differents chiffres?
Merci de vos conseils.
Cdlt
Jed


Avatar
AV
Pourquoi pas une formule (matricielle) ?

=SOMME(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))

AV
Avatar
MichDenis
| codé une addition en vba

Il faudrait alors traduire la formule ...
;-))


"AV" a écrit dans le message de news:
%
Pourquoi pas une formule (matricielle) ?

=SOMME(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))

AV
Avatar
Jed
Merci MichDenis.
C'est exactement ce qu'il me faut. Je vais developper la dessus.
Merci encore. C'est super sympa.

Cdlt


Tu peux aussi créer une fonction personnalisée :

'------------------------
Sub test()
MsgBox Selt(12345)
End Sub
'------------------------
Function Selt(T As String) As Long
On Error Resume Next
For a = 1 To Len(T)
Selt = Selt + Mid(T, a, 1)
Next
End Function
'------------------------


"MichDenis" a écrit dans le message de news:

'-------------------------
Sub test()
Dim S As Long, T As String
T = 12365
For a = 1 To Len(T)
S = S + Mid(T, a, 1)
Next
MsgBox "La somme des éléments de " & T & _
" est de " & S

End Sub
'-------------------------


"Jed" a écrit dans le message de news:

Bonjour a tous,
J'aimerai savoir comment codé une addition en vba qui prendrait les chiffres
composant un nombre? Exemple : j'ai 3537 j'aimerai aditionné 3+5+3+7.
J'ai essayé split mais je galère un peu .
Je peux connaitre la longueur du nombre par len() mais comme faire une
boucle pour additionner les differents chiffres?
Merci de vos conseils.
Cdlt
Jed






Avatar
Jed
Merci Jacques;

Je commence a mieux cerner le problème grace a toutes vos infos.

Merci à tous.
Cdlt
Jed


Bonjour Jed,

Sans passer par une chaîne :

Dim l As Long, r As Long, t As Long

l = 3537
r = 0: t = 0
t = l
While t > 0
r = r + (t - ((t 10) * 10))
t = (t 10)
Wend
MsgBox r

Bonjour a tous,
J'aimerai savoir comment codé une addition en vba qui prendrait les chiffres
composant un nombre? Exemple : j'ai 3537 j'aimerai aditionné 3+5+3+7.
J'ai essayé split mais je galère un peu .
Je peux connaitre la longueur du nombre par len() mais comme faire une
boucle pour additionner les differents chiffres?
Merci de vos conseils.
Cdlt
Jed



--
Cordialement,

Jacques.




Avatar
Jed
Merci garnote,

Effectivement la valeur est en A1 et ta solution m'aide aussi beaucoup

Cdlt
Jed


Bonjour Jed,

Si ton nombre se trouve dans la cellule A1 :

Sub Addition()
Dim n As String
Dim s As Long
n = Range("A1").Value
For i = 1 To Len(n)
s = s + Mid$(n, i, 1)
Next i
MsgBox s
End Sub

Serge

"Jed" a écrit dans le message de news:
Bonjour a tous,
J'aimerai savoir comment codé une addition en vba qui prendrait les chiffres
composant un nombre? Exemple : j'ai 3537 j'aimerai aditionné 3+5+3+7.
J'ai essayé split mais je galère un peu .
Je peux connaitre la longueur du nombre par len() mais comme faire une
boucle pour additionner les differents chiffres?
Merci de vos conseils.
Cdlt
Jed







Avatar
Jed
Merci mais je voulais un truc en vba parceque j'ai plein de choses a faire
encore avec.

Merci quand meme
Cdlt
Jed


Pourquoi pas une formule (matricielle) ?

=SOMME(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))

AV





1 2