ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How do I identify the current locale? (https://www.excelbanter.com/excel-programming/434588-how-do-i-identify-current-locale.html)

JR

How do I identify the current locale?
 
Hi.

I need to be able to identify the locale that a system is using in order to
use and IF, THEN, ELSE or CASE statement. This is because a solution that
works for English doesn't work for French, and the solution for French
doesn't work for English.

Is there a simple piece of VBA that will question the system so that I can
then select which line of code to use depending on the locale?

Your help is greatly appreciated, thanks in advance.

JR

Rick Rothstein

How do I identify the current locale?
 
I think you can use this...

LCID = Application.LanguageSettings.LanguageID(msoLanguag eIDUI)

It returns the LCID as shown on this webpage...

http://www.science.co.il/Language/Lo...asp?s=codepage

It returns 1033 for my English(US) system (not sure which English code page
you were referring to) and it should return 1036 for a French(France) system
(although like the English code pages, there are several for French besides
France).

--
Rick (MVP - Excel)


"JR" wrote in message
...
Hi.

I need to be able to identify the locale that a system is using in order
to
use and IF, THEN, ELSE or CASE statement. This is because a solution that
works for English doesn't work for French, and the solution for French
doesn't work for English.

Is there a simple piece of VBA that will question the system so that I can
then select which line of code to use depending on the locale?

Your help is greatly appreciated, thanks in advance.

JR



Mike H

How do I identify the current locale?
 
Ron De Bruin deals with the subject here

http://www.rondebruin.nl/international.htm

Mike

"JR" wrote:

Hi.

I need to be able to identify the locale that a system is using in order to
use and IF, THEN, ELSE or CASE statement. This is because a solution that
works for English doesn't work for French, and the solution for French
doesn't work for English.

Is there a simple piece of VBA that will question the system so that I can
then select which line of code to use depending on the locale?

Your help is greatly appreciated, thanks in advance.

JR


JR

How do I identify the current locale?
 
Thank you both. Now I'll have to study Mr De Bruin's information and see
whether I can get my un-techie head round it. :-)

JR


Rick Rothstein

How do I identify the current locale?
 
I can't test this as I don't have access to any computers in other
countries, but the following should return the language that the computer
running the code is set up for. So, using it should allow you to use a test
structure similar to this in your own code...

If UserLanguage() = "English" Then
' The computer running this code has English as its native language
ElseIf UserLanguage() = "French" Then
' The computer running this code has English as its native language
Else
MsgBox "You didn't test for this language: " & UserLanguage()
End If

Put all of the following in a Module (Insert/Module from the VB editor's
menu bar), then just call UserLanguage in your own code and it will return
the language set up in the regional settings for the computer running your
code...

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 Const LOCALE_SNATIVELANGNAME As Long = &H4

Public Function UserLanguage() As String
Dim sReturn As String, lReturn As Long, dwLocaleID As Long, Code As Long
Code = LOCALE_SNATIVELANGNAME
dwLocaleID = Application.LanguageSettings.LanguageID(msoLanguag eIDUI)
lReturn = GetLocaleInfo(dwLocaleID, Code, sReturn, Len(sReturn))
If lReturn Then
sReturn = Space$(lReturn)
lReturn = GetLocaleInfo(dwLocaleID, Code, sReturn, Len(sReturn))
If lReturn Then UserLanguage = Left$(sReturn, lReturn - 1)
End If
End Function

--
Rick (MVP - Excel)


"JR" wrote in message
...
Thank you both. Now I'll have to study Mr De Bruin's information and see
whether I can get my un-techie head round it. :-)

JR




All times are GMT +1. The time now is 11:31 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com