Al jalar el valor al formulario para modificar sale la coma y no el decimal, que debo hacer

Tengo un formulario de modificación de datos textos y valores num. Y en una parte del formulario. Debería aparecer el monto a modificar se supone con decimales ejm(1,245.47) pero al contrario aparece así ( 1245,47) entonces quisiera saber porque lo jala así con la coma en ves del decimal, cabe señalar que cuando lo dígito en el formulario de la manera correcta lo modifica bien en la hoja, pero a veces no necesariamente necesito modificar el valor entonces es ahí el problema.

1 respuesta

Respuesta
1

Revisa en el panel de control, al configuración regional que tienes.

Revisa en las opciones de excel que tengas el delimitador "." (punto), como separador de decimales.

Cuando lo pongas en el formulario, por ejemplo, utiliza la función "Val":

textbox5 = Val(cells(fila, "E"))


Si no funciona ninguna de las anteriores, puedes poner algo como esto:

Textbox1 = Replace(Cells(fila, "E"), ",", ".")

Saludos.Dante Amor

Si es lo que necesitas.

Funciona perfecto con numeros solo de cinco digitos ( ejm 120.25), pero cuando cuando el dato es 1250.25  lo jala 1250,25 y lo devuelve 125,025.00 porque

'Actualizar el registro
Private Sub CommandButton7_Click()
For i = 1 To 32
ActiveCell.Offset(0, i - 1).Value = Me.Controls("TextBox" & i).Value
Next i
Unload Me
'poner el valor del textbox
Range("L7") = Val(Replace(TextBox12, ",", ""))
End Sub

'
'Cerrar formulario
Private Sub Image18_Click()
Unload Me
End Sub

'
'Llenar los cuadro de texto con los datos del registro elegido
Private Sub UserForm_Initialize()
'Los textbox se cargan con un formato de comas y punto decimal
TextBox12 = Format(Range("L7"), "#,##0.00")
''''''''
For i = 1 To 32
Me.Controls("TextBox" & i).Value = ActiveCell.Offset(0, i - 1).Value
Next i
End Sub

y como se haria para que no sea en una celda especifica, podria ser de una columna

Ya me perdí.

¿En dónde tienes el problema?

¿Al pasar el dato de la celda al textbox?

o

¿Al pasar el dato del textbox a la celda?

1)El problema es al jalar el valor al textbox, lo jala así (120,25).

2)En otro tema planteaste esta solución la aplique y me funciono a medias.

'Los textbox se cargan con un formato de comas y punto decimal
TextBox12 = Format(Range("L7"), "#,##0.00")

'poner el valor del textbox
Range("L7") = Val(Replace(TextBox12, ",", ""))

3)Pero cuando cuando el dato es 1250.25 lo jala así 1250,25 y lo devuelve 125,025.00.

4)Lo que yo quiero es que me jale los datos con los miles y los decimales. ejem. 1,250.25.

5)De verdad desde ya te agradezco tu tiempo, me gustaría enviarte el archivo para que lo puedas entender mejor.

Te recomiendo lo siguiente, si quieres presentar en un textbox por ejemplo:

123,456.78

Utilizálo solamente para presentación de datos. Porque si vas a utilizar esos datos para hacer operaciones o para regresarlo a la hoja, vas a tener problemas, ya que esto: "123,456.78", cuando lo pusiste en el textbox, ya no es un número es un texto, entonces ahora tienes que modificarlo para regresarlo a número.

Envíame tu archivo para revisarlo.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Armando Herrera” y el título de esta pregunta.

Hola, ya te envié el archivo a tu correo

Saludos

Armando

Te anexo el código actualizado

Para cargar de la celda al textbox:

Private Sub UserForm_Initialize()
'act.por.dante amor
    For i = 1 To 32
        If i = 12 Then
            num = ActiveCell.Offset(0, i - 1).Value
            Me.Controls("TextBox" & i) = Format(num, "#,##0.00")
        Else
            Me.Controls("TextBox" & i).Value = ActiveCell.Offset(0, i - 1).Value
        End If
    Next i
End Sub

Para pasar del textbox a la celda

Private Sub CommandButton7_Click()
'act.por.dante amor
    For i = 1 To 32
        If i = 12 Then
            num = Val(Replace(TextBox12, ",", ""))
            ActiveCell.Offset(0, i - 1).Value = Val(num)
        Else
            ActiveCell.Offset(0, i - 1).Value = Me.Controls("TextBox" & i).Value
        End If
    Next i
    Unload Me
End Sub

Saludos.Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas