Saltar al contenido

Macro se detiene al eliminar de ListBox


Recommended Posts

publicado

El gran Gerson Pineda me apoyo con la instrucción para eliminar del listbox y hoja en modo multiselect  la cual integre a un userform que tengo, donde al eliminar del listbox sin usar el filtro o filtrando me arroja un error en la esta instrucción donde devuelvo a la hoja inventario la cantidad del producto eliminado del listbox:

Dim NombreHoja As String
NombreHoja = "Inventario"
'Buscamos la última fila
'EN EL SIGUIENTE ME ESTOY REFIRIENDO A LA HOJA SEGUN EL SECTOR
    fila = 2
    Do While ThisWorkbook.Sheets(NombreHoja).Cells(fila, 1) <> ""
        fila = fila + 1
    Loop
    Final = fila

    'CON ESTE CODIGO ESTARE RESTANDO "1" AL FOLIO EN CASO SE REGRESE A LA VENTANA ANTERIOR
    For fila = 2 To Final
        If ThisWorkbook.Sheets(NombreHoja).Cells(fila, 1) = ListBox1.Column(0) Then 'AQUI SE DETIENE LA INSTRUCCION
           ThisWorkbook.Sheets(NombreHoja).Cells(fila, 8) = ThisWorkbook.Sheets(NombreHoja).Cells(fila, 8) - Val(ListBox1.Column(4))
            Exit For
        End If
    Next

Anexo archivo para sus comentario y me indiquen en que estoy fallando. Gracias

https://mega.nz/#!3cRkVSpY!oUF4-4cZT6jmKdMt24ewH00QxHcUQc_acnwm4FwWXto

publicado
En 5/4/2019 at 22:29 , jose lopez contreras dijo:

onde al eliminar del listbox sin usar el filtro o filtrando me arroja un error en la esta instrucción donde devuelvo a la hoja inventario la cantidad del producto eliminado del listbox:

No he entendido nada, porque no entiendo qué quieres hacer con este código ?

'CON ESTE CODIGO ESTARE RESTANDO "1" AL FOLIO EN CASO SE REGRESE A LA VENTANA ANTERIOR
    For fila = 2 To Final
        If ThisWorkbook.Sheets(NombreHoja).Cells(fila, 1) = ListBox1.Column(0) Then 'AQUI SE DETIENE LA INSTRUCCION
           ThisWorkbook.Sheets(NombreHoja).Cells(fila, 8) = ThisWorkbook.Sheets(NombreHoja).Cells(fila, 8) - Val(ListBox1.Column(4))
            Exit For
        End If
    Next

 

Explícalo en condiciones, porque no sé por dónde seguirte. Para empezar no puedes igualar a ListBox1.Column(0). Primero debes saber qué ítem está seleccionado ara coger su valor de la columna 0... Ya te digo, me he perdido

publicado

cambia esta linea

If ThisWorkbook.Sheets(NombreHoja).Cells(fila, 1) = ListBox1.Column(0) Then 'AQUI SE DETIENE LA INSTRUCCION

If ThisWorkbook.Sheets(NombreHoja).Cells(fila, 1) = ListBox1.List(ListBox1.ListIndex, 1) Then  

tu instruccion le esta diciendo a Excel que coloque en una celda especifica toda la columna 0 del listbox1, con la instruccion que te paso solo el valor correspondiente a la fila de la columna 1 es la que se captura en la celda.

publicado
Hace 2 horas, Haplox dijo:

Explícalo en condiciones, porque no sé por dónde seguirte. Para empezar no puedes igualar a ListBox1.Column(0). Primero debes saber qué ítem está seleccionado ara coger su valor de la columna 0... Ya te digo, me he perdido

 

Hace 16 minutos , Dr Hyde dijo:

tu instruccion le esta diciendo a Excel que coloque en una celda especifica toda la columna 0 del listbox1, con la instruccion que te paso solo el valor correspondiente a la fila de la columna 1 es la que se captura en la celda.

Haber amigos espero y me explique, tengo un listbox que se carga con los datos de la hoja resguardo, ahí deseo que al seleccionar uno o mas productos  antes o después de filtrar y al dar clic en el botón eliminar datos:

  1. Elimine del listbox y de la hoja Resguardo el o los productos seleccionados. (Esto ya esta resuelto)
  2. Que la cantidad de los productos seleccionados en el listbox (Columna 4) se resten de la hoja inventario (Columna 8) siempre y cuando el ID de la columna 1 del listbox coincida con la con el ID de la columna 1 de la hoja inventario
  3. En el primer post esta el link de mi Userform con lo comentado.

Gracias por su interés en apoyarme.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.