Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
JR JR is offline
external usenet poster
 
Posts: 92
Default 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
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,934
Default 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


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,501
Default 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

  #4   Report Post  
Posted to microsoft.public.excel.programming
JR JR is offline
external usenet poster
 
Posts: 92
Default 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

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,934
Default 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


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Identify the Current Cell Staanley Excel Discussion (Misc queries) 5 February 13th 08 11:16 AM
Identify Current WS? Dave Birley Excel Programming 2 May 22nd 07 03:08 PM
Identify current active cell reades Excel Worksheet Functions 6 January 10th 06 12:48 PM
Object doesn't support current locale setting: 'setlocale' Martin Eckart[_2_] Excel Programming 0 May 17th 05 09:41 AM
Identify Current Row for ActiveCell COL H Excel Programming 6 April 29th 05 10:17 PM


All times are GMT +1. The time now is 12:33 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"