Avoir 2 separateurs de décimales

Bonjour à tous

Je suis débutant en VBA et je dois réaliser un programme qui sera utilisé par d'autres personnes.

Ma question est la suivante, est ce possible d'avoir une virgule ET un point comme séparateur de décimale ? (j'ai fais une recherche au préalable mais je n'ai trouvé aucune réponse, j'ai seulement trouvé comment remplacer la virgule par le point).

Pour remettre dans le contexte, la macro fera une liste de produits sous un tableau excel et demandera notamment le prix du produit concerné. Et c'est là que le problème se pose : le programme va être utiliser par des manutentionnaires et par des intérimaires qui n'auront pas forcément le reflexe d'utiliser la virgule du clavier et utiliseront le point sous le pad numérique (ca m'arrive déjà à moi alors que c'est moi qui écrit le code ), ce qui générera une erreur...

Je pensais faire un If imbriqué dans l'Inputbox du prixht qui remplacerait automatiquement le point par une virgule mais je ne vois pas comment le faire et j'ai l'impression de chercher beaucoup trop loin... Auriez-vous une solution pour m'aider svp ?

Merci beaucoup à tous !

Si besoin, voici ci-dessous la partie du code concerné par ça :

Sub macro1()

Dim prixht, quantite, tva, total As Double

prixht = InputBox("Inscrivez ci-dessous le prix hors taxe du produit concerné (utiliser une virgule si décimale)")

quantite = InputBox("Inscrivez ci-dessous le nombre d'article(s) de ce produit")

tva = InputBox("Inscrivez ci-dessous son taux de TVA (utiliser une virgule si décimale)")

total = (prixht + (prixht * tva / 100)) * quantite

MsgBox ("Le prix total sera de " & total & " €")

End Sub

Salut j'avais un soucis aussi de ce style.

j'ai trouvé ceci sur le net

en fait quand il saisisse le nombre, le point est changé en virgule..

'FORCER NUMÉRIQUE POUR MONTANT

Private Sub MaTextBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

'TRANSFORMER LE POINT PAR UNE VIRGULE

If KeyAscii = 46 Then KeyAscii = 44

End Sub

Bonjour

Dans Excel le point du pavé numérique donne automatiquement une virgule...

Salut j'avais un soucis aussi de ce style.

j'ai trouvé ceci sur le net

en fait quand il saisisse le nombre, le point est changé en virgule..

'FORCER NUMÉRIQUE POUR MONTANT

Private Sub MaTextBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

'TRANSFORMER LE POINT PAR UNE VIRGULE

If KeyAscii = 46 Then KeyAscii = 44

End Sub

Merci beaucoup pour ta réponse !

Bonjour

Dans Excel le point du pavé numérique donne automatiquement une virgule...

Dans le tableur oui, mais pas dans les macros, il me marque Erreur lorsque j'utilise le point du pavé numérique

Bonjour

Ton exemple de macro plante parce que les InputBox donnent du texte et le typage ne suffit pas

Sub macro1()

Dim prixht, quantite, tva, total As Double

prixht = CDbl(WorksheetFunction.Substitute(InputBox("Inscrivez ci-dessous le prix hors taxe du produit concerné (utiliser une virgule si décimale)"), ".", ","))
quantite = CDbl(WorksheetFunction.Substitute(InputBox("Inscrivez ci-dessous le nombre d'article(s) de ce produit"), ".", ","))
tva = CDbl(WorksheetFunction.Substitute(InputBox("Inscrivez ci-dessous son taux de TVA (utiliser une virgule si décimale)"), ".", ","))
total = (prixht + (prixht * tva / 100)) * quantite

MsgBox ("Le prix total sera de " & total & " €")

End Sub
Rechercher des sujets similaires à "separateurs decimales"