Bonjour,

Je sais que ce sujet existe partout, mais franchement j'ai tout essayé et là je deviens carrément chèvre BEHHHHH

Voila le soucis: dans un userform j'ai un certain nombre de textbox dont le contenu à la validation doit être formaté en monétaire pour pouvoir ensuite être utilisé dans des formules, et quoi que je fasse y a toujours un truc qui déconne :

soit il me le garde en texte quand le chiffre dépasse le millier, soit c'est quand il y a des décimales, soit .....

Bref si quelqu'un pouvait m'aider avant que je me mette à brouter de l'herbe....

Voici un extrait du code :
je prend ici la Textbox_salaire, mais j'en ai 5 ou 6 comme ça

donc ca c'est une première mise en forme quant on quitte la textbox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 
Private Sub TextBox_Salaire_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With TextBox_Salaire
    .Value = Format(TextBox_Salaire, "#'##0.00 €")
    If .Value = "" Then
        .Value = "Décimales avec une virgule : 12,00"
        .ForeColor = RGB(128, 128, 128)
    End If
End With
End Sub
et Voici la seconde mise en forme à la validation du bouton enregistrer
Je vous préviens c'est très moche : tout ce que j'ai trouvé c'est de multiplier les changements de formats et les replace et ça marche..... presque :

- ok pour les nombres avec des milliers
- ok pour les nombres avec des décimales et des milliers
- ok pour les nombre avec des dizaines ou des centaines SANS décimales

- BUG pour les nombres avec des dizaines ou des centaines ET AVEC des décimales (PS, ça marche quand j'écris un nombre avec ",00" mais pas avec par exemple ",03")

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
    .Cells(L1 + 12, 1) = TextBox_Salaire.Value
    .Cells(L1 + 12, 1).NumberFormat = "#'##0.00 €"
    .Cells(L1 + 12, 1) = Replace(.Cells(L1 + 12, 1), ",", ".")
    .Cells(L1 + 12, 1) = Replace(.Cells(L1 + 12, 1), "'", "")
    .Cells(L1 + 12, 1).FormulaR1C1 = .Cells(L1 + 12, 1).Value
    .Cells(L1 + 12, 1).NumberFormat = "#,##0.00 €"

Pitié que quelqu'un m'aide, m'apporte au moins une trace de piste de solution, je veux rester humaine moi