Autres Pb format remplacement point ou virgule par virgule 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 !

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

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
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é.
 
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
😉
 
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, @+
 
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
 
- 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
1
Affichages
363
Réponses
5
Affichages
572
Retour