Problema Excel VBA: error con decimales
Estimad@s, les pido ayuda con un problema que me está desesperando.
Programé un sistema de gestión de compras con macros y formularios. Funcionó sin inconvenientes durante 2 años en una empresa, pero ahora comenzaron a usarlo en otra computadora y se genera un problema que no he podido solucionar.
Para registrar la recepción de los artículos comprados, el usuario debe seleccionar el artículo, el proveedor y el lugar de recepción (combos), completar datos en TextBox (fecha y cantidad) y se carga todo en un ListBox (cada dato se separa con vbTab). Luego, al presionar el botón Grabar, el código recorre el ListBox, y escribe los datos de la recepción en una hoja oculta.
Ahí es donde aparece el problema. Si en el ListBox se cargan cantidades con decimales, esos decimales desaparecen al ser escritos en la hoja oculta, porque no se está tomando el separador de decimales. Por ejemplo, si en el ListBox dice que se recibieron 125,54 kg. De un artículo, en la hoja se carga como 12554.
Lo que no entiendo es que hasta estoy verificando el separador de decimales que está en uso por Excel antes de pasar el dato al ListBox, de esta manera:
If Application.DecimalSeparator = "." Then
dblCant = Replace(Trim(TextBox1.Text), ",", ".")
Else
dblCant = Replace(Trim(TextBox1.Text), ".", ",")
End If
Y luego, al pasar del ListBox a la hoja de carga, tengo un código como este:
For i = 0 to ListBox1.ListCount - 1
arrReg = Split(ListBox1.List(i), vbTab)
....
dblCant = Cdbl(arrReg(4))
...
Cells(intFila, 6).Value = dblCant
intFila = intFila + 1
Next
Hace unos días fui a la empresa y me di cuenta de que en esa computadora, misteriosamente, el Cdbl del 2do. Bloque de código estaba generando un problema. Lo borré, ahora queda:
dblCant = arrReg(4)
Y pareció funcionar, ¡Pero ahora me avisan de la empresa de que volvió a fallar! Las cantidades decimales se están cargando sin que se respete el separador decimal...
Ya no sé qué hacer. Además de hacer ese cambio, revisé tanto la configuración del sistema operativo como la de Excel, asegurándome de que ambos usaran el mismo separador. Un dato más: el sistema operativo es Windows XP y la versión de Office, 2010. XP en español, Office en inglés...
Este problema me está desesperando, doy vueltas y vueltas, intento todo lo que puedo, pero no encuentro la solución.
Sospecho que no es problema de código, sino probablemente de conflicto entre alguna configuración del sistema y de Excel, o incluso por estar en distintos idiomas... Pero no he sido capaz de encontrar la solución.
Si alguien puede ayudarme, le estaré muy agradecido.