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.
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.
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
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!
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/
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.