HOLA COLEGAS
TENGO UNA APLICACION EN VBA DESARROLLADA DESDE ACCESS QUE
EXPORTA DATOS A EXCEL Y LOS FORMATEA. LA APLICACION SE
EJECUTA CORRECTAMENTE EN LOS PCs QUE TIENEN CONFIGURADO
EL
MISMO SEPARADOR DE LISTAS (PANEL DE CONTROL / CONF.
REGIONAL). DEBO SABER COMO CAMBIAR O AL MENOS PREGUNTAR
DESDE VBA EL SEPARADOR DE LISTAS DEL PC.
COMO LO HAGO?
MUCHAS GRACIAS POR SU AYUDA.
> DEBO SABER COMO CAMBIAR O AL MENOS PREGUNTAR
> DESDE VBA EL SEPARADOR DE LISTAS DEL PC.
> COMO LO HAGO?
Hola, Camilo:
Tienes que utilizas las funciones API «GetLocaleInfo» (para conocer el
separador de listas) y «SetLocaleInfo» (para modificar el signo de separador
de listas). Adapta el siguiente código de VB:
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
Const LOCALE_USER_DEFAULT = &H400
'---------------------------------------
' Conocer el separador de listas instalado
'---------------------------------------
Dim dl As Long
Dim sBuffer As String
sBuffer = String(100, vbNullChar)
dl = GetLocaleInfo(LOCALE_USER_DEFAULT, &HC, sBuffer, 99)
If dl <> 0 Then
MsgBox Trim(sBuffer)
End If
'---------------------------------------
' Modificar el separador de listas instalado
'---------------------------------------
Dim dl As Long
' Establecemos el nuevo símbolo del separador de listas
dl = SetLocaleInfo(LOCALE_USER_DEFAULT, &HC, "|")
If dl <> 0 Then
MsgBox "Separador de listas modificado."
End If
Si me permites una sugerencia, evita escribir todo el texto del mensaje en
mayúsculas, ya que significa que estás chillando. :-)
Un saludo.
--
Enrique Martínez
[MS MVP - VB]