[Excel/VBA] Pb de police dans une Combobox

cs_nico39 Messages postés 56 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 4 octobre 2006 - 9 mai 2005 à 11:20
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 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?

Un grand merci d'avance!


Amateurement vôtre...

3 réponses

Starec Messages postés 152 Date d'inscription mercredi 30 mars 2005 Statut Membre Derniè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

Starec
0
cs_nico39 Messages postés 56 Date d'inscription vendredi 4 mars 2005 Statut Membre Derniè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.


Amateurement vôtre...
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
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

jpleroisse
0
Rejoignez-nous