VBA. Si cellule contient "."...

Résolu/Fermé
webtomm - 26 mai 2010 à 12:41
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 3 sept. 2011 à 14:00
Bonjour,

J'ai créé un userform et je voudrais bloquer le fait que les utilisateurs qui entreront un montant puisse le faire avec un point pour séparer les décimales.

Je voudrais créer un MsgBox pour leur dire d'utiliser une virgule si jamais ils entrent un point;

Savez vous le code qui me permettrait de savoir si il y a un point "." dans le montant qu'ils entrent?

Je sais pas si j'ai été clair....

Merci de votre aide !!!

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
26 mai 2010 à 12:55
Salut,
Pas très clair...
que les utilisateurs qui entreront un montant Je suppose donc que l'utilisateur entre un montant dans une textbox.
Pour cela, tu peux même te passer d'avertir l'utilisateur par une msgbox, en remplaçant, dans la textbox le point par une virgule :
TextBox1.Value = Replace(TextBox1.Value,".",",")

Si tu tiens à avertir et bloquer l'utilisateur il convient d'utiliser l'évènement TextBox_change comme ceci :
Private Sub TextBox1_Change()
If Right(TextBox1.Value, 1) = "." Then
MsgBox "merci de saisir une virgule au lieu du point"
TextBox1.Value = ""
End If
End Sub
0
ok super ca marche merci!!

et une autre petite question stp...
le montant qui est tapé ds ma textbox va directement ds un tableau Excel prédéfini.

Je voudrais que ce montant soit au format que je veux, cad av le séparateur de millier. la cellule qui est censé acceuillir mon montant est bien parametré mais pourtant qd on tape le montant ds la textbox elle ne se met pas au bon format ds la cellule...

Merci de ton aide!!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
26 mai 2010 à 13:44
Une TextBox est, par défaut, au format String (chaine de caractère format texte).
On peux donc forcer le format lors de l'insertion de la donnée contenue dans le textebox dans la cellule. Exemple:
Sheets("Feuil1").Range("A1").Value = Format(TextBox1.Value, "#,##.00")
0