XL 2019 Mettre des zéros devant un nombre du textbox vers cellule

escudo

XLDnaute Nouveau
Bonjour, tout le monde,
j'ai un userform qui contient un textbox avec des valeurs numériques parfois lorsque je veux mettre des zéros devant un nombre par exemple 00567 Lors du transfert des données de ce userform vers une feuille la cellule qui reçoit la valeur 00567 n'affiche pas la valeur telle quelle mais plutôt 567 SACHANT QUE JE NE VEUX PAS PERSONNALISER la colonne qui reçoit les valeur du textbox en mettant 0000000 je me demande s'il y a une macro ou bien une opération pour résoudre ce cas
 

escudo

XLDnaute Nouveau
Les éléments d'une ComboBox étant toujours du texte il n'y a aucune raison que les zéros soient éliminés dans la liste, revoyez la manière dont cette liste est créée.
Private Sub UserForm_Initialize()
Dim a2()
Dim TEMP()

Set f = Sheets("BD")
Set rng = f.Range("A2:N" & f.[A65000].End(xlUp).Row)
Set mondico = CreateObject("Scripting.Dictionary")
BD = rng.Value
ncol = rng.Columns.Count

ListBox1.ColumnCount = ncol

a = f.Range("B2:B" & f.[A65000].End(xlUp).Row) ' tableau a(n,1) pour rapidité
For i = LBound(a) To UBound(a)
If a(i, 1) <> "" Then mondico(a(i, 1)) = Val(a(i, 1))
Next i
TEMP = mondico.Items
Call Tri(TEMP, LBound(TEMP), UBound(TEMP))
Me.ComboBox2.List = TEMP
 

escudo

XLDnaute Nouveau
Les éléments d'une ComboBox étant toujours du texte il n'y a aucune raison que les zéros soient éliminés dans la liste, revoyez la manière dont cette liste est créée.
Private Sub UserForm_Initialize()
Dim a2()
Dim TEMP()

Set f = Sheets("BD")
Set rng = f.Range("A2:N" & f.[A65000].End(xlUp).Row)
Set mondico = CreateObject("Scripting.Dictionary")
BD = rng.Value
ncol = rng.Columns.Count

ListBox1.ColumnCount = ncol

a = f.Range("B2:B" & f.[A65000].End(xlUp).Row) ' tableau a(n,1) pour rapidité
For i = LBound(a) To UBound(a)
If a(i, 1) <> "" Then mondico(a(i, 1)) = Val(a(i, 1))
Next i
TEMP = mondico.Items
Call Tri(TEMP, LBound(TEMP), UBound(TEMP))
Me.ComboBox2.List = TEMP
 

job75

XLDnaute Barbatruc
Eh oui Val(a(i, 1)) entre une valeur numérique dans le dictionnaire en enlevant les zéros non significatifs.

Et ça c'est parce que vous voulez faire un tri numérique.

Si vous voulez que tous les éléments de la ComboBox aient par exemple 7 chiffres utilisez :
VB:
If Val(a(i, 1)) <> 0 Then mondico(a(i, 1)) = Format(Val(a(i, 1)), "0000000")
et limitez à 7 la longueur des textes sources.
 

escudo

XLDnaute Nouveau
Eh oui Val(a(i, 1)) entre une valeur numérique dans le dictionnaire en enlevant les zéros non significatifs.

Et ça c'est parce que vous voulez faire un tri numérique.

Si vous voulez que tous les éléments de la ComboBox aient par exemple 7 chiffres utilisez :
VB:
If Val(a(i, 1)) <> 0 Then mondico(a(i, 1)) = Format(Val(a(i, 1)), "0000000")
et limitez à 7 la longueur des textes sources.
je peux faire ce que vous me recommander mais comme ça tout les nombres affichés dans ce combobox commenceront par des ZEROS ce qui va affecter ma recherche ou bien mon filtre pour afficher des données dans une listbox en fonction de ce combobox .
mois je veux que le combobox m'affiche les chiffres tels quels sont sur la colonne du feuille de calcul comme ca
456
12345
8990
334
006543
00812
08976
pas comme ca
0000456
0012345
0008990
0000334
0006543
0000812
0008976
 

Discussions similaires

Réponses
93
Affichages
2 K

Statistiques des forums

Discussions
312 210
Messages
2 086 279
Membres
103 170
dernier inscrit
HASSEN@45