VBA - fonction nombre caractère ?

Fermé
popo68 Messages postés 28 Date d'inscription dimanche 17 septembre 2006 Statut Membre Dernière intervention 30 octobre 2006 - 28 sept. 2006 à 13:10
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 4 nov. 2012 à 13:37
Bonjour à tous !

Voilà, j'ai une variable i, qui contient un nombre qui s'incrémente de +1 a chaque boucle de mon DO UNTIL ... LOOP.

En faite, j'aimerais savoir quel est la fonction qui me permet de savoir à chaque fois que je passe à la dizaine supérieur, ou en faite de savoir combien y a de caractère dans i

J'avais fait len(i), mais ca a pas l'air de marcher avec des variables numériques ?

en faite pour i= de 0à 9 -> je voudrais avoir 1
et donc de i = de 10 à 99 -> je voudrais avoir 2
etc...

Merci par avance ^^

3 réponses

blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 3 317
28 sept. 2006 à 13:26
Salut,

il faut convertir ton nombre en chaine, puis demander la longueur de la chaine (en sachant qu'un espace est réservé pour l'affichage du signe).

Ca donnerait un truc comme ça :
MsgBox Len(Str(i) - 1)
Attention, ça ne reconnait que le premier passage à l'unité supérieure (dizaine, centaine, millier, diaine de milliers..., mais de 20 à 30, même longueur). Si tu veux le passage à la dizaine, il faut tester si 'i' est divisible par 10...
6
popo68 Messages postés 28 Date d'inscription dimanche 17 septembre 2006 Statut Membre Dernière intervention 30 octobre 2006
28 sept. 2006 à 14:04
Merci blux, ca marche, mais faut sortir le -1, plutot comme ca :

j = Len(Str(i)) - 1


Merci les gars ! ^^
0
blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 3 317 > popo68 Messages postés 28 Date d'inscription dimanche 17 septembre 2006 Statut Membre Dernière intervention 30 octobre 2006
28 sept. 2006 à 14:25
Vi, t'as raison, j'avais pas testé...
0