Boucle qui décortique un nombre

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 !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonjour,

Dans une macro je voudrais réaliser la boucle suivante :

For j = 1 To NbChiffres

....

Next j

NbChiffres est le nombre de chiffres contenus dans une variable.
Supposons que cette variable soit 821 ---> NbChiffres = 3

Au 1er tour la boucle renvoie le chiffre 1
Au 2ème tour le chiffre 2
Au 3ème le chiffre 8

Merci d'avance pour toute aide.
 
Re : Boucle qui décortique un nombre

Bonjour Magic_Doctor

Code:
Sub Test()

Dim NbChiffres as long

NbChiffres = Len(TaVariable)

   For j = 1 To NbChiffres
       ....
   Next j

End sub

Pour le reste de ta question, elle est trop vague et imprécise pour que je puisse comprendre quelque chose et y répondre. Désolé.

Bonne après midi
 
Dernière édition:
Re : Boucle qui décortique un nombre

Re,

Magic_Doctor à dit:
Au 1er tour la boucle renvoie le chiffre 1
Au 2ème tour le chiffre 2
Au 3ème le chiffre 8

Renvoie le chiffre ... où??? Dans une cellule (si oui laquelle)? Dans une(des) variable(s)???

Si tu renvoie le chiffre ... toujours dans la même cellule ou variable, la nouvelle donnée écrasera la précédente!!!!

A te lire.
 
Re : Boucle qui décortique un nombre

Je me suis en fait mal exprimé.

Supposons que ma variable soit toujours 821.

Je voudrais obtenir 8 + 2 + 1

La boucle décortiquant ce nombre récupère à chaque tour un des chiffres de ce nombre :
Au 1er tour : 1 (si l'on commence bien entendu de droite à gauche)
total = total + valeur récupérée (1er tour) ---> 0 + 1 = 1
Au 2ème tour : 2
total = total + valeur récupérée (2ème tour) ---> 1 + 2 = 3
Au 3ème tour : 8
total = total + valeur récupérée (3ème tour) ---> 3 + 8 = 11
 
Re : Boucle qui décortique un nombre

Bonjour,

regarde peut être le code ci-dessous :

Code:
Option Explicit
Sub test()
Dim i As Byte, j As Integer, mavariable As String
mavariable = 821
For i = 1 To Len(mavariable)
    j = j + Mid(mavariable, i, 1)
Next i
MsgBox j
End Sub

bon après midi
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
776
Réponses
4
Affichages
730
Réponses
7
Affichages
537
Retour