Autres Pb format remplacement point ou virgule par virgule VBA

medlight

XLDnaute Junior
Bonjour à tous quelqu'un peut m'aider pour résoudre le pb suivant, le problème c'est quand je met point ou virgule pour les valeur décimal dans un Textbox , la cellule de Feuil1 doit l'accepte comme valeur décimal et merci d'avance
 

Pièces jointes

  • test.xlsm
    13 KB · Affichages: 5
Solution
Bonjour

un essai ici
VB:
Private Sub CommandButton1_Click()
With Sheets("Feuil1")
 .[F6] = Replace(TextBox1.Value, ",", ".")
 .[F7] = Replace(TextBox2.Value, ",", ".")
 .[F8] = Replace(TextBox3.Value, ",", ".")

End With
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Ou encore :
VB:
Private Sub CommandButton1_Click()
With Sheets("Feuil1")
    .[F6] = Val(TextBox1.Value)
    .[F7] = Val(TextBox2.Value)
    .[F8] = Val(TextBox3.Value)
End With
End Sub
Val Renvoie les nombres contenus dans une chaîne en tant que valeur numérique de type approprié.
 

patricktoulon

XLDnaute Barbatruc
re
bonjour à tous
toujours déterminer le numérique de la valeur
VBA travaille avec le point comme séparateur (quelque soit la version de excel)
et donc val ne prendra que le point sinon il te donne le "INT"
ci dessous on est tranquille
VB:
Private Sub CommandButton1_Click()
With Sheets("Feuil1")
    .[F6] = Val(Replace(TextBox1, ",", "."))
    .[F7] = Val(Replace(TextBox2, ",", "."))
    .[F8] = Val(Replace(TextBox3, ",", "."))
End With
End Sub
;)
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour medlight, vgendron, sylvanu, patrick, le forum

ou utiliser cette petite fonction personnalisée qui fait la même chose, publiée par TI_ en 2005 sur ce forum.

Bonjour le forum

Avec l'autorisation de David, voici, en son hommage, une fonction personnalisée de Ti_ (Thierry Pourtier) remettant le bon séparateur décimal dans une valeur quel que soit le séparateur décimal utilisé.
Utilisable par VBA ou formule, compatible toutes versions d'Excel depuis Excel 97.
Citation de Ti_ parlant du séparateur décimal: "la fonction Val n'a que faire de ces subtilités internationales puisqu'elle n'utilise jamais que le point, quel que soit le système utilisé, et je trouve ça très bien ainsi."

Bien cordialement, @+
VB:
Code:
Function Valeur#(ByVal StrVal$)
'remettre le bon séparateur décimal dans une valeur quel que soit le paramètre régional
'by Ti_ (Thierry Pourtier)
Valeur = Val(Replace(StrVal, ",", "."))
End Function

VB:
Private Sub CommandButton1_Click()
With Sheets("Feuil1")
    .[F6] = Valeur(TextBox1.Value)
    .[F7] = Valeur(TextBox2.Value)
    .[F8] = Valeur(TextBox3.Value)
End With
End Sub

Cordialement, @+
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re

pour illustrer la différence entre sans Val et avec Val, et comprendre pourquoi son absence peut amener des problèmes selon l'utilisation du résultat.

Cordialement, @+

VB:
Sub Test_Type_Valeur()
MsgBox "sans Val " & Replace("36,98", ",", ".") & " donnée de type " & TypeName(Replace("36,98", ",", "."))
MsgBox "avec Val " & Replace("36,98", ",", ".") & " donnée de type " & TypeName(Val(Replace("36,98", ",", ".")))
End Sub
 

Discussions similaires

Réponses
13
Affichages
502

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh