Formato 2 decimales vba excel

5 envíos / 0 nuevos
Último envío
Giannine
Imagen de Giannine
Offline
última acción: Hace 3 años 8 meses
alta: 03/05/2020 - 19:36
Puntos: 170
Formato 2 decimales vba excel

Hola a todos,

Tengo un combobox cargado con 5 columnas de una tabla de excel. Los numeros en columna precio tienen entre 2 y 4 decimales, pero en la tabla estan redondeados a 2 decimales.

Tengo un formulario con combobox y textbox, al seleccionar 1 item en el combobox carga la columna "Precio" en el Txt_Precio.

Pero cuando ejecuto el código, redondea el precio al numero entero y agrega .00 al final.

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Private Sub Cmb_Productos_Change()

Txt_Precio.Value = Format(Val(Cmb_Productos.List(Cmb_Productos.ListIndex, 3)), "#,##0.00")

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Lo que necesito es pasar el precio al Txt_Precio redondeado con sus 2 respectivos decimales .

Alguien puede decirme que estoy haciendo mal? Por favor.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 4 horas 20 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
A lo que estás dando formato

A lo que estás dando formato es al valor de la lista, no al valor de la celda

Format(Val(Cmb_Productos.List(Cmb_Productos.ListIndex, 3)), "#,##0.00")

Así que el problema de eliminar los decimales serguramente lo tendrás al cargar los valores en la lista

¿cómo llegan a la lista desplegable esos valores?

Otra posible causa de problemas es que esté interpretando la coma de tu formato como un separador de listas y no como un separador de miles

Prueba a poner el formato como 0.00, sin las # ni los miles, o poniendo un espacio para separar los miles # ##0.00

 

 

------
Ya sé Excel, pero necesito más.

Giannine
Imagen de Giannine
Offline
última acción: Hace 3 años 8 meses
alta: 03/05/2020 - 19:36
Puntos: 170
Ya intente cambiando a 0.00,

Ya intente cambiando a 0.00, sin las # ni los miles y poniendo un espacio para separar los miles # ##0.00 y no funciona. Al eliminar el código de formato me muestra en el textbox así => 12,1334 con coma, pero lo quiero con punto y dos decimales.

Este es el código que uso para cargar el combobox:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

L = 1

With Cmb_Productos

    .ColumnCount = 4

    .ColumnWidths = "0;180;0;0"

    .TextColumn = 2

End With

 

With [Productos] 'Nombre de hoja excel

    Do While .Cells(L, 1) <> ""

        Cmb_Productos.AddItem

        Cmb_Productos.List(Cmb_Productos.ListCount - 1, 0) = .Cells(L, 1)

        Cmb_Productos.List(Cmb_Productos.ListCount - 1, 1) = .Cells(L, 2)

        Cmb_Productos.List(Cmb_Productos.ListCount - 1, 2) = .Cells(L, 3)

        Cmb_Productos.List(Cmb_Productos.ListCount - 1, 3) = .Cells(L, 4)

    L = L + 1

    Loop

End With

CronyTech
Imagen de CronyTech
Offline
última acción: Hace 3 años 10 meses
alta: 29/02/2020 - 23:09
Puntos: 50
Tal como menciona Paco, el

Tal como menciona Paco, el problema debe estar a la hora de cargar los datos en la lista desplegable.

Acabo de reproducir exactamente el mismo código en un archivo de prueba y sí me devuelve la cantidad con dos decimales...

Saludos!

 
X
MultiCopyPaste

Time to upgrade, it’s free!

Simply click on the top left of the extension and register to get access to 10 shortcuts. Your email will remain secure, but we might get in touch for your feedback!

Programas y complementos para Microsoft Office

Visítame: https://cronytech.jimdofree.com/productos-y-servicios/

 
Giannine
Imagen de Giannine
Offline
última acción: Hace 3 años 8 meses
alta: 03/05/2020 - 19:36
Puntos: 170
Si, tienes razón, el código

Si, tienes razón, el código funciona, el problema era mi configuración regional, hace tiempo mi laptop mostraba por ejemplo la 1 de la tarde asi => 13:00 y yo queria que muestre 1:00pm así que cambie la configuracion regional de Perú a Mexico, así que ahora restableci todo y mi código ya funciona perfecto.

Gracias, por su ayuda.Risa