Visual Basic para Aplicaciones - al multiplicar 1001 por 1.312250 al pasar los datos el resultado es 131.356.225,00 €

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 13
Ha aumentado su posición en 5 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

al multiplicar 1001 por 1.312250 al pasar los datos el resultado es 131.356.225,00 €

Publicado por Luis Miguel (3 intervenciones) el 23/06/2020 17:05:21
Hola. en un formulario en excel, al multiplicar el volumen 1001 por el precio 1.312250 el resultado en el formulario es
1313,56225.
Pero al pasar los datos a la hoja el resultado es 131.356.225,00 €.
A que es debido ?

El codigo que tengo es sencillo
1
2
3
Private Sub TXT_IMPORT_Enter()
TXT_IMPORT.Text = Val(TXT_VOLUM.Value) * Val(TXT_PREU.Value)
End Sub

Multiplica el valor del textbox txt_volum pro el valor del texbox txt_preu "precio en catalan"

En el formulario es correcto pero con 5 decimales y supongo que ahi esta el kit de la cuestión, pero no seé como solucionarlo.
Soy un novato, auto didacta viendo y leyendo.
Gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de RET
Val: 117
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

al multiplicar 1001 por 1.312250 al pasar los datos el resultado es 131.356.225,00 €

Publicado por RET (32 intervenciones) el 23/06/2020 19:18:36
Lo mas probable es que tengas un problema entre punto y coma. Nuestra coma decimal es el separador de miles. hazte una sustitucion en el precio de . por coma, a ver si es eso.

IMF_RET
https://InformaticaMuyFacil.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 13
Ha aumentado su posición en 5 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

al multiplicar 1001 por 1.312250 al pasar los datos el resultado es 131.356.225,00 €

Publicado por Luis Miguel (3 intervenciones) el 25/06/2020 09:11:36
Hola, no es eso el que causa que no pase el calculo bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.098
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

al multiplicar 1001 por 1.312250 al pasar los datos el resultado es 131.356.225,00 €

Publicado por Antoni Masana (373 intervenciones) el 24/06/2020 12:13:10
Sin ver la configuración de Windows de cual es el separador de miles y decimales y el código es difícil dar con la respuesta.
Al copiar el valor 1.312250 con Ctrl-V a una celda de Excel en el que tengo definido el punto como separador de miles lo ha convertido en un entero 1.321.250.
No se me ocurre como hacer algo diferente a lo que haces porque no se lo que haces.
Podrías usar la función VAL() al pasarlo a la celda para que Excel no tenga que interpretarlo, un TextBox no define el tipo de dato y al pasarlo a una celda es el Excel el que lo convierte a lo que a él le parece mas adecuado. Como me ha pasado al hacer la copia.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 13
Ha aumentado su posición en 5 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

al multiplicar 1001 por 1.312250 al pasar los datos el resultado es 131.356.225,00 €

Publicado por Luis Miguel (3 intervenciones) el 25/06/2020 09:26:55
Hola, gracias por tu ayuda.

Primero puse este formato al valor del txtbox que daba 4 decimales ,pero al pasar a la hoja excel lo interpretaba como texto
1
2
3
With Me.TXT_IMPORT
    .Value = Format(.Value, "#,##0.00€")
End With

Buscando encontre la solución en ExceleInfo, Para pasar de texto a numero ,
Explica las cosas muy bien y tiene infinidad de vídeos explicativos con los archivos para poder descargarlos.

Pongo el código por si alguien tiene el mismo problema

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'
Sub ConvertiraNumeros()
 
Dim Celda As Range
' este es el rango de celdas en mi caso que tenían el valor mal.
Range("G20:G32").Select
For Each Celda In Selection
 
    If Not IsNumeric(Celda.Value) Then
        Celda.Value = WorksheetFunction.Trim(Celda.Value)
    ElseIf TypeName(Celda.Value) = "String" Then
        Celda.Value = Celda.Value + 1 - 1
    End If
 
Next Celda
End Sub

Gracias por vuestra colaboración.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar