Existe t'il plus simple que Val(Len(Cstr(Numéro))) ?

Bonjour,

Pour compter le nombre de chiffres contenus dans un nombre (1 si Numéro=n; 2 si Numéro=nn; etc...) j'utilise une expression du type:

NbChiffres= Val(Len(Cstr(Numéro))) 

Y'a t'il moyen de faire plus court ?

Merci à tous les membres dévoués qui donnent de leur temps pour répondre à nos questions

Bonjour,

Len retourne un entier long.

Val n'est donc pas nécessaire. !?

NbChiffres=Len(Cstr(Numéro)) 

Bonsoir Stéphane1972,

Utilise une fonction pour éviter la répétition de l'expression dans une ou plusieurs macros.

Exemple: dans une macro diverse

Sub Div()
............ ' Tout début de programme
'Traitement du nombre de chiffres
Nbchif = NB(Numéro)
........... ' Toute fin de programme
End sub
Function NB(x)
NB = VBA.LenB(x)/2
End Function

Bons tests, bonne continuation.

Bonjour,

Len retourne un entier long.

Val n'est donc pas nécessaire. !?

NbChiffres=Len(Cstr(Numéro)) 

Merci, tout à fait juste j'aurais dû me documenter d'avantage avant de poser cette question !

Bonsoir Stéphane1972,

Utilise une fonction pour éviter la répétition de l'expression dans une ou plusieurs macros.

Exemple: dans une macro diverse

Sub Div()
............ ' Tout début de programme
'Traitement du nombre de chiffres
Nbchif = NB(Numéro)
........... ' Toute fin de programme
End sub
Function NB(x)
NB = VBA.LenB(x)/2
End Function

Bons tests, bonne continuation.

Merci X Cellus,

Je ne connaissais pas la fonction LenB, ta fonction marche super bien. Je viens de regarder sur docs.microsoft.com pour comprendre la raison de se surprenant : /2

La fonction Len fonctionne aussi à condition de laisser x en Variant comme tu l'as fait

Bonne continuation itou

Rechercher des sujets similaires à "existe simple que val len cstr numero"