TextBox en format %

daniel1949

XLDnaute Occasionnel
Bonjour le forum,
Mon problème :
en cellule I173 j'ai un résultat (variable) en format 00,00%
J'ai un TextBox dans un USF et je voudrais récupérer la valeur de la cellule I173.
Dans les propriétés du TextBox j'indique en ControlSource : I173
Jusqu'à là... rien d'anormal ! Le TextBox me renvoie la valeur de la cellule.
J'essaie : TextBox1 = Format(TextBox, "00.00 %") - j'ai mis un "." et non une virgule -
et j'obtiens... rien que la valeur d'origine. J'ai donc essayé Range("I173")/100, Dim Pourcent, etc., rien n'y fait !

J'ai beau cherché à travers le forum (et d'autrs) ... Je n'arrive pas à trouver la procédure excate pour mettre en format pourcentage ce TextBox.

Avez-vous une solution à me proposer car l'obsession me fait perdre mes repères :)

Merci et bonne journée à tous.
Daniel
 

Paritec

XLDnaute Barbatruc
Re : TextBox en format %

bonjour Daniel 1949
juste un truc de départ, si tu as mis comme tu as écrit c'est normal que cela ne marche pas
il faudrait déjà mettre bien Textbox1
a+
Papou :)
Code:
TextBox1 = Format(TextBox1, "00.00 %")
ou aussi
Code:
TextBox1 = Format(cells(173,9),"00.00 %")
 
Dernière édition:

daniel1949

XLDnaute Occasionnel
Re : TextBox en format %

Bonjour Paritec et merci,
Le "1" manquant est un oubli... dans ma description. Sinon les codes que tu me proposes, ne marchent pas (j'ai déjà essayé).
Je me demande si le fait d'attribuer un controlsource au textbox est une bonne solution...
Pour l'instant je ne touche pas car... c'est pas mon jour.
A bientôt
 

daniel1949

XLDnaute Occasionnel
Re : TextBox en format %

Bonjour James,
Sur tes conseils (Exit(évenements...) j'ai fini par trouver une solution (partielle) et un peu branquignolle...
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
' alimentation champ formulaire
TextBox1.Value = Range("I173").Value
' transformation % en 100ème
TextBox1.Value = Val(TextBox1.Value) / 100
' transformation en valeur texte pour affichage champ formulaire
TextBox1 = Format(TextBox1.Text, "0.00%")
End Sub
Ca marche si... je clique sur un autre TextBox !
Bizarre.
Bonne journée
 

Paritec

XLDnaute Barbatruc
Re : TextBox en format %

Re bonjour Daniel1949, James:)
oui il faut surtout supprimer ton rowsource dans le textbox, c'est lui qui te pose problème
et tu verras que après tout marchera et pas une fois sur deux.
(Pour James, ma récupération sur yahoo pour les cours et top maintenant)
a+
Papou :)
 

kjin

XLDnaute Barbatruc
Re : TextBox en format %

Bonjour le fil,
Dans les propriétés du TextBox j'indique en ControlSource : I173
Est-ce bien utile ?!
Si tu formattes la TextBox, tu formateras aussi la cellule, non ?!
Code:
Private Sub UserForm_Initialize()
TextBox1 = Range("I173")
If Len(TextBox1) > 0 And IsNumeric(TextBox1) Then TextBox1 = Format(TextBox1 / 100, "00.00%")
End Sub
...en ayant viré le ControlSource auparavant
A+
kjin
 

daniel1949

XLDnaute Occasionnel
Re : TextBox en format %

Bonjour et merci Kjin,
Pas mal sauf que 57.50 % de la cellule I173 deviennent 0,58 %... même après avoir viré le control source !
C'est soit dans "/100", soit dans "00.00%"... mais comme je l'ai signalé plus haut : c'est pas mon jour !
 

kjin

XLDnaute Barbatruc
Re : TextBox en format %

Re,
Variable ? C'est que ce chiffre est une somme de % d'une colonne. Rien d'important en soi...
Pourquoi préciser alors...(cela aurait pu justifier le ControlSource)
Code:
Private Sub UserForm_Initialize()
TextBox1 = Range("I173").Value
If Len(TextBox1) > 0 And IsNumeric(TextBox1) Then TextBox1 = FormatPercent(TextBox1, 2)
End Sub
...devrait suffire, si la cellule est déjà bien au format "0.00%", le 2 indiquant ici 2 chiffres après la virgule
A+
kjin
 

Statistiques des forums

Discussions
312 337
Messages
2 087 392
Membres
103 536
dernier inscrit
komivi