Remplacer le symbole décimal

Contenu du snippet

Pour tous ceux qui ont été déçu par la précédente source et qui ont des soucis avec le symbole décimal, voici une méthode que j'utilise afin de changer le symbole décimal au lancement de mon programme. Cela peut poser un problème dans la mesure où ce code change le symbole décimale des options régionales et linguistiques (pendant la durée où le programme est ouvert), donc pour ceux qui utilisent des programmes qui ont un autre symbole décimal que celui qu'on veut dans le programme, ça peut poser quelques problèmes, mais bon, souvent, cela ne pose aucun problème et arrange pas mal les choses...

Source / Exemple :


'Dans un module il faut déclarer les API suivantes:
Public Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Public Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean
Public SepDec As String            'Stockage du symbole décimal de la machine avant le lancement du programme
Public SepDecM As String           'Stockage du symbole décimal monétaire de la machine avant le lancement du programme
'Ecrivez les fonctions suivantes:
'Renvoie le séparateur décimal du système
Public Function SysSepDec() As String
    Dim Sep As String * 2
    GetLocaleInfo 0, &HE, Sep, 2
    SysSepDec = Left$(Sep, 1)
End Function
'Renvoie le SEParateur DECimal Monétaire du SYStème
Public Function SysSepDecM() As String
    Dim Sep As String * 2
    GetLocaleInfo 0, &H16, Sep, 2
    SysSepDecM = Left$(Sep, 1)
End Function
'Change le SEParateur DECimal existant par le "Nouveau"
Public Sub ChangeSepDec(Nouveau As String)
    'séparateur décimal
    SetLocaleInfo 0, &HE, Nouveau
End Sub
'Change le SEParateur DECimal Monétaire par le "Nouveau"
Public Sub ChangeSepDecM(Nouveau As String)
    'séparateur décimal monétaire
    SetLocaleInfo 0, &H16, Nouveau
End Sub
'##############
'Dans le Form_load écrivez
'Récupération du SepDec du système pr nombre et monétaire
SepDec = SysSepDec
SepDecM = SysSepDecM
If (SepDec = ",") Then ChangeSepDec "."   'On passe les "," en "."
If (SepDecM = ",") Then ChangeSepDecM "."
'##############
'Dans le Form_Unload donc à la fermeture du programme on remet le séparateur comme il était à l'origine
ChangeSepDec SepDec   'Remet le séparateur décimal comme il était avant le lancement du programme
ChangeSepDecM SepDecM 'Remet le séparateur décimal monétaire

Conclusion :


Il n'y a pas de Zip, mais en suivant les instructions et en recopiant le code, vous pourrez vous en sortir...
Bon courage, j'espère que cela vous aidera autant que moi :)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.