VBA formater un n° Cedex

  • Initiateur de la discussion Initiateur de la discussion david84
  • Date de début Date de début

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 !

david84

XLDnaute Barbatruc
Bonjour,
dans une des textbox de mon USF, je dois rentrer un n°Cedex.
Pour simplifier la saisie, je voudrais que lorsque je rentre un nombre, par ex "5", que la textbox m'affiche "005".
j'ai tenté le code suivant en utilisant l'événement Exit et en tentant d'utiliser la fonction Text, mais cela ne donne rien (Controls(21) correspond au tabindex de la textbox nommée Cedex) :
Code:
Private Sub Cedex_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Cedex As Byte
Cedex = Application.WorksheetFunction.Text(Controls(21).Text, "##0")
End Sub
Où se situe mon erreur et à quoi est-elle due ?
Merci
 

Pièces jointes

Re : VBA formater un n° Cedex

Bonjour david 😉

Je crois qu'il faut plutôt un code format du type "000"

donc un truc comme

Code:
Cedex = Application.WorksheetFunction.Text(Clng(Cedex.Text), "000")

ou, plus court

Code:
Cedex = Format(Clng(Cedex.Text), "000")
 
Re : VBA formater un n° Cedex

Re
Merci Tototiti, c'est exactement cela😉
J'avais pourtant essayé cela sans le
Code:
Cedex = Application.WorksheetFunction.Text([B]Clng[/B](Cedex.Text), "000")
et cela ne donnait rien 😕
Je vais regarder à quoi cela sert et pourquoi il y a besoin de l'utiliser (si tu veux me l'expliquer, ne te gène pas😉).
A+

Edit : ben si, pourtant ça marche sans Clng😕...
Code:
Cedex = Application.WorksheetFunction.Text(Cedex.Text, "000")

En fait, ce qui faisait planter, c'était lorsque je voulais définir ma variable :
Code:
Private Sub Cedex_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Dim Cedex As Variant
Cedex = Application.WorksheetFunction.Text(Cedex.Text, "000")
End Sub

Quand la partie 'Dim Cedex As Variant est active (sans le "'"), cela plante (j'ai mis "variant" sur le test mais j'avais également essayé d'autres définitions).
Sais-tu pourquoi ?

Pour Clng, j'ai regardé l'aide d'Excel😉
 
Dernière édition:
Re : VBA formater un n° Cedex

Re,

Les fonctions VBA CLng, CInt, CDate, CStr, CBool, CSng, CDbl convertissent vers un autre type

Cedex.Text renvoie du texte, comme le nom de la propriété l'indique
CLng convertit ce texte en type Long (Entier long)
Ce n'est peut-être pas indispensable, et c'est vrai que ça peut être source d'erreur

Ceci dit je ne sais pas ce que renvoie Format(Cedex.Text, "000") sit le contenu est du texte...
 
- 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
Retour