Les Snippets

Connexion

Modifier le séparateur de décimale (options régionales et linguistiques)

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 14/11/2006 09:42:29 et initié par Drikce06 [Liste]
Date de mise à jour : 15/11/2006 10:39:35
Vue : 11539
Catégorie(s) : API, Système
Langages dispo pour ce code :
- VB6, VBA
- VB 2005, VB.NET 1.x
- VBA
- VB6
- Delphi 5



Langage : VB6 , VBA
Date ajout : 14/11/2006
Posté par Drikce06 [Liste]
DateMAJ : 15/11/2006
Option Explicit

'Déclaration des fonctions API
Private 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
Private Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCTYPE As Long, ByVal lpLCData As String) As Long
Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long

'Déclaration de la constante séparateur décimal
Private Const LOCALE_SDECIMAL = &HE

Public Property Get DecimalSeparator() As String
Dim nLength As Long
Dim nLocale As Long
    nLocale = GetUserDefaultLCID()
    nLength = GetLocaleInfo(nLocale, LOCALE_SDECIMAL, vbNullString, 0) - 1
    DecimalSeparator = Space$(nLength)
    GetLocaleInfo nLocale, LOCALE_SDECIMAL, DecimalSeparator, nLength
End Property

Public Property Let DecimalSeparator(ByRef Value As String)
Dim nLocale As Long
    If Value <> DecimalSeparator Then
        If Value = "." Or Value = "," Then
            nLocale = GetUserDefaultLCID()
            SetLocaleInfo nLocale, LOCALE_SDECIMAL, Value
        End If
    End If
End Property

Langage : VB.NET 1.x , VB 2005
Date ajout : 15/11/2006
Posté par Drikce06 [Liste]
Option Explicit On 
'Déclaration des fonctions API

Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Integer, ByVal LCTYPE As Integer, ByVal lpLCData As String, ByVal cchData As Integer) As Integer

Private Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Integer, ByVal LCTYPE As Integer, ByVal lpLCData As String) As Integer

Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Integer

'Déclaration de la constante séparateur décimal
Private Const LOCALE_SDECIMAL = &HE 
Public Property DecimalSeparator() As String

Get

Dim nLength As Integer

Dim nLocale As Integer

nLocale = GetUserDefaultLCID()

nLength = GetLocaleInfo(nLocale, LOCALE_SDECIMAL, vbNullString, 0) - 1

DecimalSeparator = Space$(nLength)

GetLocaleInfo(nLocale, LOCALE_SDECIMAL, DecimalSeparator, nLength)

End Get
Set(ByVal value As String) 
Dim nLocale As Integer

If value <> DecimalSeparator Then

If value = "." Or value = "," Then

nLocale = GetUserDefaultLCID()

SetLocaleInfo(nLocale, LOCALE_SDECIMAL, value)

End If

End If

End Set

End Property

'Exemple d'utilisation:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
DecimalSeparator = "."

End Sub

Langage : VBA
Date ajout : 16/11/2006
Posté par mortalino [Liste]
' *** A Placer dans un Module
Dim ActualDecimalSeparator As String
Public Sub ChangeDecimalSeparator(ByVal sDecimal As String)
    With Application
        .UseSystemSeparators = False
        ActualDecimalSeparator = .DecimalSeparator
        .DecimalSeparator = sDecimal
    End With
End Sub
Public Sub RestoreDecimalSeparator()
    With Application
        .UseSystemSeparators = True
        .DecimalSeparator = ActualDecimalSeparator
    End With
End Sub
_______________________________________________________
*** EXEMPLE UTILISATION :
Private Sub Workbook_Open()
    Call ChangeDecimalSeparator(".")
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call RestoreDecimalSeparator
End Sub
Remarque :
CODE UNIQUEMENT pour gérer un changement de séparateur de décimal sur un fichier Excel (ou plusieurs..).
Il a pour but de modifier le séparateur à l'ouverture d'un classeur, et de restaurer la configuration à la fermeture.
Langage : VB6
Date ajout : 16/11/2006
Posté par mortalino [Liste]
' *** A Placer dans un Module
' je pars juste du principe que l'appli est déclaré comme  :    xlApp
Dim ActualDecimalSeparator As String
Public Sub ChangeDecimalSeparator(ByVal sDecimal As String)
    With xlApp
        .UseSystemSeparators = False
        ActualDecimalSeparator = .DecimalSeparator
        .DecimalSeparator = sDecimal
    End With
End Sub
Public Sub RestoreDecimalSeparator()
    With xlApp
        .UseSystemSeparators = True
        .DecimalSeparator = ActualDecimalSeparator
    End With
End Sub
_______________________________________________________
*** EXEMPLE UTILISATION :
Private Sub MybookOpen()
    '  vos déclarations..
    ' après le xlBook.Open(..),  mettre :
    Call ChangeDecimalSeparator(".")
    ' suite de votre traitement
End Sub
Private Sub MybookClose()
    Call RestoreDecimalSeparator
    'à  partir de là, on peut fermer le classeur et quitter l'appli  excel
End Sub
Remarque :
CODE UNIQUEMENT pour modifier les paramètres du séparateur décimal sur un fichier excel.
C'est à dire que lorsqu'un fichier excel est ouvert, on peut changer le séparateur seulement dans excel, puis à la fermeture, restaurer la configuration.
Langage : Delphi 5
Date ajout : 06/02/2007
Posté par f0xi [Liste]
DecimalSeparator := '.';


Snippets en rapport avec : Séparateur, Options, Décimale, Régionale, Linguistique



Codes sources en rapport avec : Séparateur, Options, Décimale, Régionale, Linguistique

{Visual Basic, VB6, VB.NET, VB 2005} REMPLACER LE SÉPARATEUR DE DÉCIMALE
Permet de remplacer un séparateur de décimale virgule (,) ou point (.) par un point ou une virgule....

{JAVA / J2EE} COLLISIONS EN 2D : AXES SÉPARATEURS
Voici une petite source illustrant une technique très simple de test de collisions entre polygones e...

{C# / C#.NET} LANCER LES OPTIONS D'IMPRESSION D'UNE IMPRIMANTE
Ce code permet de lancer la fenêtre de configuration propriétaire (HP, Canon, ...) de l'imprimante. ...

{C / C++ / C++.NET} CONVERSION D'UN NOMBRE D'UNE BASE QUELCONQUE VERS UNE AUTRE
Le fonction baseToBase permet de convertir un nombre d'une base quelconque vers une autre, par le bi...

{Visual Basic, VB6, VB.NET, VB 2005} SÉPARATEUR DÉCIMAL DES NOMBRES.
VB 2005 Dans les options régionales (panneau de configuration - Options régionales, date, heure et ...

{Visual Basic, VB6, VB.NET, VB 2005} SANZÉREUR : LE CORRECTEUR ORTHOGRAPHIQUE
Sanzéreur est un éditeur de texte muni de divers outils linguistiques : • Correcteur orthographique...

{Visual Basic, VB6, VB.NET, VB 2005} REMPLACER LE SYMBOLE DÉCIMAL
Pour tous ceux qui ont été déçu par la précédente source et qui ont des soucis avec le symbole décim...

{Javascript / DHTML} AJOUTER DYNAMIQUEMENT DES OPTIONS À UNE LISTBOX
Ben, le titre est assez explicite! Sa tient dans une fonction de 3 lignes: function ajouterOPTIO...

{Visual Basic, VB6, VB.NET, VB 2005} CONVERTIR DES CHIFFRES EN LETTRES AVEC OU SANS DÉCIMALE ET/OU MONÉTAIRE
je sais qu'il en existe déjà plusieurs mais celui-ci n'utilise qu'une boucle de traitement (centai...

{PHP} PARSING DES ARGUMENTS DE LA LIGNE DE COMMANDE
Le php a plusieurs fonctions : Il peut être utilisé sur un serveur web pour faire des pages dynamiq...