Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

VBA: Los Separadores del Sistema en nuestras macros

Vamos a repasar unas propiedades de la aplicación, de Excel, que nos pueden ser útiles en diferentes ocasiones.
Por ejemplo, cuando trabajamos con nuestras macros en entornos internacionales y nuestros compañeros de trabajo emplean una configuración decimal-miles de sistema distinto al nuestro.


Veremos en concreto, y entre otras, las propiedades:
Application.UseSystemSeparators
Application.DecimalSeparator
Application.ThousandsSeparator


La propiedad Application.UseSystemSeparators activa o desactiva el uso de los separadores del sistema.
Mientras que los otros dos:
Application.DecimalSeparator
Application.ThousandsSeparator

permiten personalizar los caracteres a emplear tanto para el separador de miles como para el decimal...


Otra propiedad interesante es la que nos permite cambiar el estio de referencia de celdas entre A1 y F1C1, la propiedad en cuestión es:
Application.ReferenceStyle


En un módulo estándar de nuestro explorador de proyecto VBA insertamos el siguiente código:

Sub SeparadoresDelSistema()
'vemos en un mesnaje el estilo de referencia en este momento
Dim strEstilo As String
If Application.ReferenceStyle = xlA1 Then
MsgBox "El estilo de referencia actual es A1"
Else
MsgBox "El estilo de referencia actual es F1C1"
End If
'cambio de estilo de referencia a F1C1
Application.ReferenceStyle = xlR1C1

'componemos texto informativo con los separadores actuales de nuestro equipo
Dim strDecimal As String, strMiles As String
strDecimal = Application.International(xlDecimalSeparator)
strMiles = Application.International(xlThousandsSeparator)

MsgBox "Antes del cambio " & vbCrLf & _
"El separador decimal actual es: " & strDecimal & vbCrLf & _
"El separdor de miles actual es: " & strMiles

'Cambiamos los separadores del sistema
With Application
'deshabilitamos los separadores
.UseSystemSeparators = False
'marcamos cuálkes son los separadores deseados
.DecimalSeparator = "."
.ThousandsSeparator = ","
End With

'para activar de nuevo los separadores del Sistema
Application.UseSystemSeparators = True

'componemos texto informativo con los separadores actuales
'tras el cambio en nuestro equipo
strDecimal = Application.International(xlDecimalSeparator)
strMiles = Application.International(xlThousandsSeparator)

MsgBox "Después del cambio " & vbCrLf & _
"El separador decimal actual es: " & strDecimal & vbCrLf & _
"El separdor de miles actual es: " & strMiles & vbCrLf & _
"El estilo de referencia es: F1C1"

'retornamos al estilo de referencia a A1
Application.ReferenceStyle = xlA1
End Sub


En mi caso parto de una configuración con:
Separador de miles un punto .
Separador decimal una coma ,

Vemos en dos imágenes el cambio producido al ejecutar nuestra macro:



Y en un otro paso:



This post first appeared on EXCEL FORO: EJERCICIOS, EJEMPLOS, SOLUCIONES, DUDA, please read the originial post: here

Share the post

VBA: Los Separadores del Sistema en nuestras macros

×

Subscribe to Excel Foro: Ejercicios, Ejemplos, Soluciones, Duda

Get updates delivered right to your inbox!

Thank you for your subscription

×