La Web del Programador: Comunidad de Programadores
 
    Pregunta:  6598 - ADMINISTRACION PUNTO DECIMAL EN IMPORTES
Autor:  Luis Guerrero
Tenemos el siguiente problema:
La configuración regional tiene indicado , (coma) para indicar el punto decimal.
Cómo podemos realizar desde VB la modificación de , (coma) a . (punto) en la configuración para trabajar en nuestros forms?
Y luego restablecer la configuración al estado original?

Idem para Fecha y hora.

  Respuesta:  Esteban Gabriel Arias
Lo ideal seria que la funcion que usen sea independiente de la configuracion regional.

Ej:
Si quisieran pasar de un String a un Numero
(Esto quizas les sirva para resolver los puntos y las comas)

Function POT10(Exp As Byte) As Long

Dim X As Byte
Dim Aux as Long

Aux = 1
For X = 1 To Exp
Aux = Aux * 10
Next x

End Function

Function Str2Num(ByVal Valor As String , ByRef Exito as Integer) As Variant

Dim Dec as Integer
Dim Decimal as Long
Dim Entera As Long
Dim Aux As Integer
Dim Numero_Decimal As Double

On Error Goto Errores

Exito = True
Dec = 0
Dec = Instr(1,strReverse(Valor),".")
If Dec = 0 then
Dec = Instr(1,strReverse(Valor),",")
End If
Aux = Len(Valor) - Dec
If Dec > 0 then
Decimal = CLng(Mid(Valor,Aux + 2))
End if
Entera = CLng(Mid(Valor,1,Aux))

Numero_Decimal = Cdbl(Entera)
If Dec > 0 then
Numero_Decimal = Numero_Decimal + _
(Cdbl(Decimal) * Cdbl( 1# / POT10(Dec - 1))))
Str2Num = Numero_Decimal
Else
Str2Num = Clng(Numero_Decimal)
End If
Exit Function
Errores:
Exito = False

End Function

Un saludo
Esteban Arias