Jump to content
Marias123

Folios y Filas desde ListBox

Recommended Posts

Buenas noches.

Estoy desarrollando un punto de ventas. Ya puedo pasar la información de los controles a una hoja de Excel. El problema esta en que quiero agregar todas las filas de mi listbox (lstVentas) a una hoja de Excel (Ventas) en diferentes filas y con el mismo folio. Ejemplo: Si en mi primer venta (folio 1) agregué a mi listbox 4 productos (4 filas) me gustaría agregar esas 4 filas a una hoja de excel y que cada producto tenga el folio de la venta correspondiente. Cuando haga otra venta quiero aumentar el folio y agregar a la hoja de excel los siguientes productos a vender sin borrar los anteriores ni dejar espacios..

Tengo el siguiente código:

Fila = 4
        For x = 0 To lstVenta.ListCount - 1
        Sheets("Ventas").Cells(Fila, 1).Value = lblFolio.Caption 'Folio
        Sheets("Ventas").Cells(Fila, 2).Value = Date
        Sheets("Ventas").Cells(Fila, 3).Value = Time
        Sheets("Ventas").Cells(Fila, 4).Value = cbxSeccion 'Sección
        Sheets("Ventas").Cells(Fila, 5).Value = cbxGrado 'Grado
        
        Sheets("Ventas").Cells(Fila, 6).Value = lstVenta.List(x, 0) 'Código
        Sheets("Ventas").Cells(Fila, 7).Value = lstVenta.List(x, 1) 'Producto
        Sheets("Ventas").Cells(Fila, 8).Value = lstVenta.List(x, 2) ' Descripción
        Sheets("Ventas").Cells(Fila, 9).Value = lstVenta.List(x, 3) ' Talla
        Sheets("Ventas").Cells(Fila, 10).Value = lstVenta.List(x, 4) ' Precio Unitario
        Sheets("Ventas").Cells(Fila, 11).Value = lstVenta.List(x, 5) ' Cantidad
        Sheets("Ventas").Cells(Fila, 12).Value = lstVenta.List(x, 6) ' Total
        
        Sheets("Ventas").Select
        Folio = Range("A5").Value
        Range("A4").Value = (Folio + 1)
        Range("A5").EntireRow.Insert
        lblFolio.Caption = Sheets("Ventas").Range("A5")
        
        Fila = Fila + 1

        Next

Ventas.png

Formulario.png

Share this post


Link to post
Share on other sites

Sin archivo, lo máximo que te puedo decir es esto:

With Sheets("Ventas")
   folio = WorksheetFunction.Max(.Columns("A")) + 1
   For x = 0 To lstVenta.ListCount - 1
      fila = .Range("A" & Rows.Count).End(xlUp).Row + 1
      .Cells(fila, 1) = folio                ' Folio
      .Cells(fila, 2) = Date                 ' Fecha
      .Cells(fila, 3) = Time                 ' Hora
      .Cells(fila, 4) = cbxSeccion           ' Sección
      .Cells(fila, 5) = cbxGrado             ' Grado
      .Cells(fila, 6) = lstVenta.List(x, 0)  ' Código
      .Cells(fila, 7) = lstVenta.List(x, 1)  ' Producto
      .Cells(fila, 8) = lstVenta.List(x, 2)  ' Descripción
      .Cells(fila, 9) = lstVenta.List(x, 3)  ' Talla
      .Cells(fila, 10) = lstVenta.List(x, 4) ' Precio Unitario
      .Cells(fila, 11) = lstVenta.List(x, 5) ' Cantidad
      .Cells(fila, 12) = lstVenta.List(x, 6) ' Total
   Next
End With

 

Share this post


Link to post
Share on other sites

Qué tal @Marias123 , te dejo una solución.

Lo que no tengo claro es el tema del nº de folio. Lo he montado de tal manera que al abrir el userform, el nº de folio será el siguiente al máximo que haya en la hoja.

Verás un spinbutton que te permite aumentar o disminuir el nº de folio (si te sirve con el que pone el formulario al abrir, pues no lo uses). También resta las cantidades.

Prueba y comenta

Copia de Venta Uniformes.xlsm

Share this post


Link to post
Share on other sites
En 2/4/2018 at 1:53 , Haplox dijo:

Qué tal @Marias123 , te dejo una solución.

Lo que no tengo claro es el tema del nº de folio. Lo he montado de tal manera que al abrir el userform, el nº de folio será el siguiente al máximo que haya en la hoja.

Verás un spinbutton que te permite aumentar o disminuir el nº de folio (si te sirve con el que pone el formulario al abrir, pues no lo uses). También resta las cantidades.

Prueba y comenta

Copia de Venta Uniformes.xlsm

Muchas Gracias @Haplox La solución fue perfecta, Quité el SpinButtom. Exactamente aumenta el número de folio dando continuidad al último folio en la lista de ventas. También disminuye la cantidad de productos vendidos. Muchas gracias por la ayuda. Aún sigo trabajando en el libro, cualquier duda les informo.

Share this post


Link to post
Share on other sites

Hola @Antoni y @Haplox he trabajado en el libro, me surgió otro problema. Al agregar los productos a la lista me gustaría sumar las cantidades de los productos que se repiten (Código).

Ejemplo. Si ya agregué el producto con clave CAM002 cantidad 4 y lo vuelvo a agregar CAM002 cantidad 2, mostrar solo una linea: 

CÓDIGO      PRODUCTO         DESCRIPCIÓN          TALLA    PRECIO    CANTIDAD    SUBTOTAL

CAM002        CAMISA      UNIFORME DE DIARIO       2            330                 6                 1980

Espero me puedan ayudar.

Share this post


Link to post
Share on other sites
Hace 14 horas, Marias123 dijo:

No pude subir el archivo, marca error al subirlo.

Recuerda que el foro SOL ADMITE ficheros menores de 100kb. Si fuese mayor prueba en ZIP o súbelo a un servidor externo.

Como no has podido subirlo tee dejo la solución sobre el fichero mío que ya te subí

 

Copia de Venta Uniformes.xlsm

Share this post


Link to post
Share on other sites
Hace 6 horas, Haplox dijo:

Recuerda que el foro SOL ADMITE ficheros menores de 100kb. Si fuese mayor prueba en ZIP o súbelo a un servidor externo.

Como no has podido subirlo tee dejo la solución sobre el fichero mío que ya te subí

 

Copia de Venta Uniformes.xlsm

Muchas Gracias @Haplox por último me gustaría validar: Cuando la disponibilidad de los productos estén en 0 que mande un mensaje y no se pueda vender.

Ejemplo: Si el producto CAM002 quedan 2 y quieren comprar 3 que le indique al usuario la disponibilidad y si no hay pues también que le mande un mensaje indicando que no hay disponibles.

Share this post


Link to post
Share on other sites
Hace 13 horas, Haplox dijo:

@Marias123 , Si se piensa en lo que se necesita desde el principio, no hace falta ir añadiendo cosas según se nos ocurre ;)

Te dejo la solución

Copia de Venta Uniformes.xlsm

Hola @Haplox

Me van pidiendo cosas nuevas. :(

Ahora me pidieron que me imprima el reporte de ventas del día con el total de ventas. 

Tengo el siguiente código que me permite filtrar pero no me elimina la ultima fila donde hice la sumatoria. :(

Private Sub cmdReporte_Click() 'Filtrar las ventas del día
Dim UltLinea As Long

Dim FilaEliminar As Long

Sheets("Ventas").Select 'Seleccionar la hoja Ventas
ActiveSheet.ListObjects("TablaVentas").Range.AutoFilter Field:=2, Criteria1:=xlFilterToday, Operator:=xlFilterDynamic 'Aplicar el filtro

UltLinea = Range("M5").End(xlDown).Row + 1 'busco la última fila con datos que y le sumo 1 para colocar el sumatorio, define correctamente la columna y la primera celda que tiene datos
Range("M" & UltLinea).FormulaR1C1 = "=SUM(R[-" & UltLinea - 1 & "]C:R[-1]C)" 'escribo la formula en la celda, fijate que le resto uno aquí a UltLinea para que no provoque una redundáncia

On Error Resume Next
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True 'Imprimir el filtro (Reporte de ventas)

FilaEliminar = ActiveSheet.Cells(Aplication.Rows.Count, 1).End(xlUp).Row
ActiveSheet.Cells(FilaEliminar, 1).EntireRow.Delete shift:=xlUp

ActiveSheet.ListObjects("TablaVentas").Range.AutoFilter Field:=2 'Quitar filtro
End Sub

 

En la solución que me enviaste respecto a la disponibilidad, me suma las cantidades restando uno al total de cantidades. Ejemplo me quedan 2 y yo capturo 4 me aparece el mensaje pero me agrega 3. Si no hay disponibles me sigue agregando. :(

 

Share this post


Link to post
Share on other sites

@Marias123 , primero dile a tu jefe, o a quién sea, que este mes parte de su sueldo me lo ingrese a mí :). Segundo:

  • Te dejo la solución a lo de imprimir. No lo puedes hacer como ibas. Trabajar con tablas con formato no es lo mismo que trabajar con rangos
  • No puedes enviar a imprimir sin configurar la página y el área de impresión, luego te imprimiría de cualquier manera
  • Lo de las sumas y demás en el listbox ya está solucionado. El problema era cómo tienes el código que no permitía cambiar la cantidad. Por cierto ¿Porqué solo dejas introducir cantidades hasta 4? :huh:
  • Tienes repartido por todo el código SendKeys "{Home}+{End}" que no se´qué pretendes con ello, pero no hace nada más que estorbar.

Prueba y comenta

Copia de Venta Uniformes.xlsm

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png