Probleme de point - virgule sous vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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.
 
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).
 
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)
 
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😕

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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
32
Affichages
976
Réponses
3
Affichages
537
Réponses
5
Affichages
601
Retour