Jump to content
giordancisco

Modificar columna entera de un listbox

Recommended Posts

Como va? tengo un problema que no lo he podido resolver bien por una cuestión de lógica. 
Tengo un listbox que toma los datos de otro listbox, el dato que quiero modificar se trata del precio unitario de productos que corresponde al precio de venta en EFECTIVO. Partiendo de ese dato una vez cargada toda la factura requiero de poder cambiar el valor del precio de venta en efectivo por el valor del precio de tarjeta que es igual al precio de venta + el 30%. La forma de pago se cambia a través de un combobox. Si en efecto el combobox a través del evento change se posiciona en "TARJETA" debe sumarle a toda la columna de precio unitario un 30% y si se vuelve a elegir forma de pago en "EFECTIVO" debería volver al precio extraído de venta original que resultaría de aplicar /1,3. 

Hasta ahí pude llegar a solucionar el problema con el siguiente código:
 

For i = 0 To ListBox1.ListCount - 1
If Me.tipodepago.Value = "TARJETA" Then
Me.ListBox1.List(i, 2) = Format(Me.ListBox1.List(i, 2) + (Me.ListBox1.List(i, 2) * 0.3), "$###,##0.00#########")
Me.ListBox1.List(i, 3) = Format(Me.ListBox1.List(i, 3) + (Me.ListBox1.List(i, 3) * 0.3), "$###,##0.00#########")
End If

If Me.tipodepago.Value = "EFECTIVO" Then
Me.ListBox1.List(i, 2) = Format(Me.ListBox1.List(i, 2) / 1.3, "$###,##0.00#########")
Me.ListBox1.List(i, 3) = Format(Me.ListBox1.List(i, 3) / 1.3, "$###,##0.00#########")
End If

Next

El problema es que esto funciona si solo hay 2 formas de pago: TARJETA o EFECTIVO

y en el combobox hay ademas otras formas de pago: CHEQUE, CRÉDITO, etc que se corresponderían al igual que a TARJETA con el precio de lista que es igual al precio de venta + 30% y es ahí donde empieza a no funcionar este código, porque cada vez que cambie entre TARJETA o CRÉDITO el valor del precio en el listbox ira aumentando un 30 por ciento.

Seguro esto tiene una solución mas sencilla y lógica, espero me puedan ayudar, desde ya muchas gracias.

Adjunto los archivos. el formulario se llama "Factura".  Se puede cargar el listbox manualmente sin la necesidad de buscar los productos en la base de datos, tener en cuenta que hay que imaginar que el precio que se ponga en el textbox de precio unitario sera el precio de venta en efectivo, ya que la base de datos contiene solo el precio de venta en efectivo.

https://drive.google.com/file/d/15as5_bgAZ2hCb9TNulH9s_tF1EIfACCQ/view?usp=sharing

 

base de datos acces: https://drive.google.com/file/d/1FZ8O8iY6ApMbYUPwBR-2Gn0Ksx7cZABi/view?usp=sharing

Edited by giordancisco
Me olvide los links

Share this post


Link to post
Share on other sites

A veces los árboles no nos dejan ver el bosque.

  • Añade una columna al ListBox1 y guárdate el precio original en ella.
  • Luego utiliza esa columna para hacer los cálculos.

 

Nota: Dale longitud cero en la propiedad ColumnWidths a la columna si no quieres que se visualice en el listbox.

Edited by Antoni

Share this post


Link to post
Share on other sites
Hace 9 horas, Antoni dijo:

A veces los árboles no nos dejan ver el bosque.

  • Añade una columna al ListBox1 y guárdate el precio original en ella.
  • Luego utiliza esa columna para hacer los cálculos.

 

Nota: Dale longitud cero en la propiedad ColumnWidths a la columna si no quieres que se visualice en el listbox.

ANTONI, Realmente eres... el rey de reyes.

Share this post


Link to post
Share on other sites

×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 5112 personas - Aprender Excel - Total: 4.7 / 5