Format monétaire

Fermé
leaemileemma Messages postés 37 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 26 septembre 2022 - 9 juil. 2019 à 18:12
leaemileemma Messages postés 37 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 26 septembre 2022 - 11 juil. 2019 à 12:06
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
10 juil. 2019 à 08:23
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
10 juil. 2019 à 11:16
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 dimanche 7 juillet 2019 Statut Membre Dernière intervention 27 février 2024 72
10 juil. 2019 à 11:35
superbe
0
leaemileemma Messages postés 37 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 26 septembre 2022
10 juil. 2019 à 12:07
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 37 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 26 septembre 2022
11 juil. 2019 à 10:43
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
11 juil. 2019 à 11:03
voici un exemple qui fonctionne:

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

@+
0
alex64-PB Messages postés 589 Date d'inscription dimanche 7 juillet 2019 Statut Membre Dernière intervention 27 février 2024 72
Modifié le 10 juil. 2019 à 08:39
J'ai trouvé ca sur le net

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


0
leaemileemma Messages postés 37 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 26 septembre 2022
11 juil. 2019 à 10:47
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