cs_nico39
Messages postés56Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention 4 octobre 2006
-
9 mai 2005 à 11:20
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 2006
-
9 mai 2005 à 12:47
Bonjour à tous,
je rencontre un problème d'affichage de nombres dans une combobox:
alors que, dans toute case Excel, le séparateur unité/dixième d'un nombre est
un point, ce même nombre apparaît avec une virgule lorsque je l'affiche dans ma
Combobox . Et si je rappelle cette valeur depuis la Combobox vers une cellule
Excel, cette virgule reste.
Quelqu'un aurait-il une idée pour régler ce petit problème?
Starec
Messages postés152Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention 5 mars 2007 9 mai 2005 à 11:23
Salut,
Ne serait-ce pas un soucis dans tes paramètres régionaux du panneau de configuration Windows, si tu formates tes cellules avec le point OK, sinon par défaut ce doit être les paramètres régionaux
cs_nico39
Messages postés56Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention 4 octobre 2006 9 mai 2005 à 12:33
Salut Starec,
merci de ta réponse.
j'ai vérifié mes paramètres régionaux, mais ils sont normaux :
le séparateur décimal est bien une virgule (comme dans Excel...).
Donc le problème vient bien des Combobox : elles considèrent peut-être les valeurs comme du texte et permute alors virgule et point...
Si tu as d'autres idées, je suis preneur.
Merci d'avance.
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 9 mai 2005 à 12:47
Bonjour,
Essaye ce code, j'ai lis le code dans la procédure d'un CommabdButton, à toi de le placer dans une procédure du Combobox. Essaye toujours comme je l'ai tappé, tu verras que le texte du Combo (par exe: si tu as tappés 123,54 dans la cellule A1) affichera 123.54 et dans sa liste, il contiendra 123,54.
(Excuse, mais je ne suis pas fort en explication).
Dans un module:
Public Function Remplacer(ByVal Texte As String, ByVal TexteRecherché As String, _
ByVal NouveauTexte As String, Optional ByVal Départ As Integer = 1) As String
Dim strTemp1 As String, strTemp2 As String
Dim I As Integer
On Error GoTo RemplacerErr
strTemp1 = Texte
I = InStr(Départ, strTemp1, TexteRecherché)
Do Until I = 0
strTemp2 = Left(strTemp1, I - 1) & NouveauTexte _
& Right(Texte, Len(strTemp1) - I - Len(TexteRecherché) + 1)
strTemp1 = strTemp2
I = InStr(I + 1, strTemp1, TexteRecherché)
Loop
Remplacer = strTemp1
Exit Function
RemplacerErr:
' Gestion d'erreur simplissime, il ne peut pas se passer grand-chose
' sauf si Départ est inférieur à 1
Select Case Err.Number
Case Else
Err.Raise Number:=vbObjectError + 1000, _
Description:="Erreur dans la fonction Remplacer : " & vbCrLf & Err.Description
End Select
End Function
Private Sub CommandButton1_Click()
Dim str1
str1 = Range("A1")
ComboBox1.AddItem Range("A1").Value
If IsNumeric("0.1") Then
UserForm1.ComboBox1.Text = CDbl(Remplacer(str1, ".", ","))
End If
End Sub