J'ai un peu honte de poser une question aussi basique mais ça fait des plombes que je tourne en rond sans trouver de solution.
J'explique mon soucis. Je fais saisir des montants à mon utilisateur via un userform. Afin de soigner la présentation, je joue sur les évenements Enter et Exit pour séparer les milliers quand on est pas dans le textbox et ne pas les séparer quand on y rentre.
J'utilise pour cela :
Code:
Private Sub Textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Textbox1 = "" Then
Textbox1 = 0
Else
Textbox1 = VBA.Format(R4Textbox1, "###,##0")
End If
End Sub
Code:
Private Sub Textbox1_Enter()
R4Textbox1 = VBA.Format(Textbox1, "0")
End Sub
Lorsque la saisie est terminée, j'enregistre la saisie dans ma feuille en faisant attention de la garder au format numérique avec :
Code:
Cells(1, 1) = val(R4Textbox2)
Malgré toutes ces précautions, lorsque l'utilisateur saisi un nombre du genre "198 222", je n'ai que les 198 qui sont saisis dans ma cellule.
Est ce que qqun saurait me dire pourquoi ? Est ce que je fais une erreur dans mes formats ?
Je vous remercie d'avance et souhaite une bonne fin de journée à tout le forum.
J'aimerai bien voir l'aide mais je suis au boulot et Excel plante lamentablement à chaque fois que j'y fais une recherche c'est pas faute de l'avoir signalé pourtant.
Ce n'est pas un problème de virgule ou de point puisque ce sont des nombres entiers qui sont saisis.
J'ai continué à gratter de mon côté et j'ai changé le format utilisé en mettant :
Code:
Textbox1 = VBA.Format(R4Textbox1, "# ##0")
et apparement ça fonctionne. Est ce que cette solution te semble pérenne ou c'est juste un hasard si ça fonctionne ?
Pose une question, claire, tu parles de textbox, de cellules, de ce que tu obtiens sans réelle question.
Au contraire de l'interface utilisateur qui peut-être localisée, vba fonctionne toujours avec les normes US, dont le séparateur de milliers(millions) est la virgule.
Produira un texte dans la cellule:
Code:
Cells(1,1) = VBA.Format(R4Textbox1, "#,##0")
Produire une valeur numérique pour une cellule à partir d'un texte contenant des espaces
C'est le format de la cellule qu'il faut changer pas le format de la valeur textuelle.
(Cdbl lèvera une erreur si dans le texte il y a un '.' il faudra au préalable le remplacer)
Si cela ne répond pas à ta demande, fournit un fichier exemple, avec une question précise et des explications précises de ce que tu veux obtenir.
Merci pour cette explication Hasco, j'y vois désormais un peu plus clair.
Je suis désolé si ma question n'était pas claire au départ. Il me semblait pourtant avoir bien expliqué qu'il y avait "saisie dans textbox" puis "report dans cellule". Et que mon soucis au final était un problème de format entre la saisie et le report.
En tout cas, je te remercie pour cette réponse plus claire que la question