Format monétaire
leaemileemma
Messages postés
38
Date d'inscription
Statut
Membre
Dernière intervention
-
leaemileemma Messages postés 38 Date d'inscription Statut Membre Dernière intervention -
leaemileemma Messages postés 38 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai construit un tableau constitué de TextBox avec un code VBA . Pas de problème.
Je peux gérer les différents paramètres des TextBox (left, width,font, etc ...)
Le seul que je n'arrive pas à gérer c'est le formatage en monétaire ("# ##0.00 €")
Voici mon code :
Qu'elle est ma bétise ?
Merci
J'ai construit un tableau constitué de TextBox avec un code VBA . Pas de problème.
Je peux gérer les différents paramètres des TextBox (left, width,font, etc ...)
Le seul que je n'arrive pas à gérer c'est le formatage en monétaire ("# ##0.00 €")
Voici mon code :
Dim MaTextBox As Object
For k = 1 To 13
For i = d To f
Set MaTextBox = F_Produit_Fonctionnement.Controls.Add("Forms.TextBox.1")
With MaTextBox
.Left = 180 + 50 * k
.Top = 100 + 25 * i
.Font.Size = 10
.Font.Bold = False
.Text = Format(MaTextBox, "# ##0.00 €")
End With
Next i
Next k
Qu'elle est ma bétise ?
Merci
Configuration: Windows / Chrome 75.0.3770.100
2 réponses
-
Bonjour,
cela pourra t'aider:
https://www.commentcamarche.net/faq/31279-vba-ajouter-des-controles-dynamiquement-dans-un-userform
-
Voilà la solution:
https://silkyroad.developpez.com/VBA/VisualBasicEditor/#LV-A
que j'ai adapter aux TextBox
'A placer dans un module standard
Option Explicit 'A placer dans un module standard Public Collect As Collection
a mettre dans un module de Classe
Option Explicit 'a mettre dans un module de Classe Public WithEvents Txt As MSForms.TextBox Private Sub Txt_Change() Txt.Text = Format(Txt.Text, "# ##0.00 €") End Sub
et dans un Bouton ceci:
Option Explicit Private Sub CommandButton1_Click() Dim Obj As Control Dim Cl As Classe1 Dim i As Integer Dim k, d, f Set Collect = New Collection For k = 1 To 13 For i = d To f Set Obj = F_Produit_Fonctionnement.Controls.Add("Forms.TextBox.1") With Obj .Left = 180 + 50 * k .Top = 100 + 25 * i .Font.Size = 10 .Font.Bold = False .Name = "TextBox" & k End With Next i 'ajout de l'objet dans la classe Set Cl = New Classe1 Set Cl.Txt = Obj Collect.Add Cl Next k End Sub 'https://silkyroad.developpez.com/VBA/VisualBasicEditor/#LV-A
@+ Le Pivert -
-
-
Bonjour,
J'ai intégré ton bout de code dans mon projet et ça ne marche pas ???
Par souci de vérification j'ai créé un nouveau projet se limitant à un Form contenant un Bouton, et là même chose, les textbox se construisent bien, on peut intégrer des nombres sans problème, mais le Format Monétaire n'est pas pris en compte ??
Je reste perplexe !
Merci et bonne journée -
-
-
J'ai trouvé ca sur le net
worksheets("Marges").Range("R18:S19").NumberFormat = "#,##0.00 $"
-
Bonjour,
En effet cette instruction fonctionne lorsque les TextBox ont été créés "manuellement" avec l'outil adéquat de la boite à outils.
Mais moi je désire que mes textBox soient créés en fonction des besoins de l'utilisateur. Donc je passe par un bout de code VBA et dans ce cas certaines propriétés, dont le Format Monétaire, ne sont pas accessibles. Il faut passer par un Module de Classe. C'est là que le bas blesse, car je dois faire une erreur que je ne trouve pas.
Merci de t'être penché sur ma question
Bonne journée
Jacques
-