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

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    cela pourra t'aider:

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

    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
    2. alex64-PB Messages postés 589 Date d'inscription   Statut Membre Dernière intervention   79
       
      superbe
      0
    3. 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
    4. 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
    5. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      voici un exemple qui fonctionne:

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

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

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

    0
    1. 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