Probleme de point - virgule sous vba

Antoine.t

XLDnaute Nouveau
Salut à tous,
Je rencontre un probleme sous vba. J'ai crée une textbox dans laquelle je dois mettre un montant. Le probleme est que dés que je met un point pour un chiffre à virgule, il me retranscris une case en format texte dans excel, donc inutilisable.
Y aurais-t-il une possibilité d'utiliser le point quand meme et de pouvoir avoir un montant utilisable en format nombre?
Merci d'avance à tous
 

pierrejean

XLDnaute Barbatruc
Re : Probleme de point - virgule sous vba

bonjour Antoine

utiliser quelque chose du genre:

range("A1")=Cdbl(replace(TextBox1,",","."))

qui remplacera une virgule eventuelle par un point (reconnu en Vba) et transformera en nombre dans la cellule
Attention TextBox1 doit avoir un texte traductible en numerique
pour s'en assurer

if isnumeric(TextBox1) then
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Probleme de point - virgule sous vba

Bonjour Antoine, bonjour le forum,

Ce code appliqué à ta Textbox devrait résoudre ton problème. Si l'utilisateur tape une virgule il la transforme en point.

Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 44 Then KeyAscii = 46
End Sub


Édition :

Bonjour PierreJean nous nous sommes croisés.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Probleme de point - virgule sous vba

Bonjour le fil, bonjour le forum,

Je me permets de répondre aussi pour PierreJean.
Oui pour le code de PiereJean.

Non pour mon code à moi. KeyPress est une autre procédure de l'objet TextBox. Il te suffit juste de le copier dans le module de ton UserForm et de l'adapter au nom de ta TextBox (ne change rien si elle se nomme aussi TextBox1).
 

deca

XLDnaute Nouveau
Re : Probleme de point - virgule sous vba

Bonjour Antoine, bonjour le forum,

Ce code appliqué à ta Textbox devrait résoudre ton problème. Si l'utilisateur tape une virgule il la transforme en point.

Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 44 Then KeyAscii = 46
End Sub


Édition :

Bonjour PierreJean nous nous sommes croisés.

Merci beaucoup, super pour moi (mais j'ai inversé, lorsque l'utilisateur tape un point, il le converti en virgule)
 

undo74

XLDnaute Nouveau
Re : Probleme de point - virgule sous vba

Bonjour à tous,
Je rebondis sur le sujet car j'ai un problème du même type avec le code suivant :


le but est de remplacer la fonction ci-dessous
Code:
'=SI(F5="cri";SI(AN5<0,166;"OK";"KO");SI(F5="maj";SI(AN5<0,5;"OK";"KO");SI(AN5<1;"OK";"KO")))

par le code ci-dessous:

mon problème c'est que je dois remplacer les , par des .
Code:
Replace(Cells(i, 40), ",", ".")
afin d'obtenir le bon résultat.

nom code ne fonction pas plante:confused:

Pouvez-vous svp me dire ou est le pb en vous remerciant d'avance.

Sub FormSi()

'Initialisation de la boucle
Dim i As Integer
i = 5 '

' selection de l'onglet feuil1
Sheets("feuil1").Select


Range("BC4").Select
ActiveCell.FormulaR1C1 = "KPI"


'Boucle sur la liste de cellule
Do While (Cells(i, 6).Value <> "")


If Cells(i, 6).Value = "cri" And Replace(Cells(i, 40), ",", ".") < 0.166 Then
Cells(i, 55).Value = "OK"

ElseIf Cells(i, 6).Value = "maj" And Replace(Cells(i, 40), ",", ".") < 0.5 Then
Cells(i, 55).Value = "OK"

ElseIf Replace(Cells(i, 40), ",", ".") < 1 Then
Cells(i, 55).Value = "OK"

Else
Cells(i, 55).Value = "KO"

End If
i = i + 1
Loop

Sheets("tb").Select
End Sub

[/CODE]
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
265
Réponses
2
Affichages
185

Statistiques des forums

Discussions
312 332
Messages
2 087 364
Membres
103 528
dernier inscrit
maro