Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
192to196
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
192to196
192to196
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dezimalkomma mit API einstellen

Dezimalkomma mit API einstellen
11.12.2002 21:33:11
Helmut Wemer
Ein vom mir erstelltes Programm funktioniert nur, wenn als Dezimalseparator das Komma, als Zeichen für Zifferngruppierung der Punkt in der länderspezifischen Systemeinstellung eingestellt ist. Ich möchte daher beim Hochfahren des Programms
1) die beiden Zeichen abfragen und den Status speichern
2) falls nötig, die Zeichen umstellen
Falls umgestellt wurde, möchte ich beim Aussteigen fragen, ob die Umstellung rückgängig gemacht werden soll. Bei "JA" wird dann der gespeicherte Zustand wiederhergestellt.
Es würde mich freuen, das API-Makro für die Umstellung zu erhalten. Vielen Dank im voraus!
H. WEMER

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Dezimalkomma mit API einstellen
12.12.2002 08:36:49
Thomas Risi
Hallo Helmut

Versuch's mal in etwa so ...


Option Explicit

Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" ( _
 ByVal Locale As LongByVal LCType As LongByVal lpLCData As String, _
 ByVal cchData As LongAs Long
Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" ( _
 ByVal Locale As LongByVal LCType As LongByVal lpLCData As StringAs Boolean
Declare Function GetUserDefaultLCID Lib "kernel32" () As Long

Public Const LOCALE_SDECIMAL = &HE
Public Const LOCALE_STHOUSAND = &HF

Private Sub GetLocale()

    Dim lcid As Long, Einstellung As Long
    Dim Info As String

    Einstellung = GetUserDefaultLCID()
    Info = String(255, 0)
    Call GetLocaleInfo(lcid, LOCALE_STHOUSAND, Info, 255)
    Info = Left(Info, InStr(Info, Chr(0)) - 1)
    MsgBox Info
    
End Sub

Private Sub SetLocale()

    Dim Symbol As String
    Dim iRet As Long
    Dim Locale As Long
    
    Locale = GetUserDefaultLCID()
    Symbol = "."
    iRet = SetLocaleInfo(Locale, LOCALE_STHOUSAND, Symbol)
    
End Sub
 

     Code eingefügt mit Syntaxhighlighter 1.15

Gruß

Thomas

Risi Thomas Softwareentwicklung


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige