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   -
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 :
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
A voir également:

2 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

cela pourra t'aider:

https://www.commentcamarche.net/faq/31279-vba-ajouter-des-controles-dynamiquement-dans-un-userform

0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
0
alex64-PB Messages postés 589 Date d'inscription   Statut Membre Dernière intervention   72
 
superbe
0
leaemileemma Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Je viens de prendre connaissance de ton post.
Je vais essayer ta proposition ce soir et te tiendrai au courant
Merci
Jacques
0
leaemileemma Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
voici un exemple qui fonctionne:

https://www.cjoint.com/c/IGljcFuN1fQ

@+
0
alex64-PB Messages postés 589 Date d'inscription   Statut Membre Dernière intervention   72
 
J'ai trouvé ca sur le net

worksheets("Marges").Range("R18:S19").NumberFormat = "#,##0.00 $"


0
leaemileemma Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
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
0