Buscar en TextBox Mostrar en ListBox y eliminar

Que hay, compañeros.
Nuevamente consultando de sus sabios conocimientos.

Alguna solución para ésta Macro Excel con UserForm.

  1. Escribir en el TextBox 187 y presionar un botón para buscar ese dato
  2. Mostrar el dato en un ListBox
  3. Eliminar o limpiar la fila con ese dato mostrado en el Listbox mediante un botón
SERIE NOMBRE FECHA
187     GONZALO   04/10/2017

2 Respuestas

Respuesta
3

¿Primero quieres hacer una búsqueda y después poder eliminar un registro?

Envíame tu archivo con tu userform para adaptar el código

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Irvin Razgriz

Así es, primero buscar el número de serie y después eliminar esa fila con ese número de serie
Te envié mi archivo Excel de muestra con algunas notas incluidas

Te anexo el código

Private Sub CommandButton1_Click()
'Por.Dante Amor
    '
    'Buscar
    If TextBox1 = "" Then
        MsgBox "Falta el número de serie"
        TextBox1.SetFocus
        Exit Sub
    End If
    '
    Set h = Sheets("INVENTARIO")
    Set b = h.Columns("E").Find(TextBox1.Value, lookat:=xlWhole)
    If b Is Nothing Then
        MsgBox "El número de serie no existe"
        Exit Sub
    Else
        fila = b.Row
        ListBox1.AddItem h.Cells(fila, "A")
        ListBox1. List(ListBox1.ListCount - 1, 1) = h. Cells(fila, "B")
        ListBox1. List(ListBox1.ListCount - 1, 2) = h. Cells(fila, "C")
        ListBox1. List(ListBox1.ListCount - 1, 3) = h. Cells(fila, "D")
        ListBox1. List(ListBox1.ListCount - 1, 4) = h. Cells(fila, "E")
        ListBox1. List(ListBox1.ListCount - 1, 5) = h. Cells(fila, "F")
        ListBox1.List(ListBox1.ListCount - 1, 6) = fila
    End If
    ListBox1.Clear
    MsgBox "Registro eliminado"
End Sub
'
Private Sub CommandButton3_Click()
'Por.Dante Amor
    'eliminar registro
    '
    If ListBox1.ListIndex = -1 Then
        MsgBox "Selecciona un registro del list"
        Exit Sub
    End If
    '
    Set h = Sheets("INVENTARIO")
    fila = ListBox1.List(ListBox1.ListIndex, 6)
    h.Rows(fila).Delete
End Sub
'
Private Sub CommandButton2_Click()
    Unload Me
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Te anexo la macro actualizada

Private Sub CommandButton1_Click()
'Por.Dante Amor
    '
    'Buscar
    If TextBox1 = "" Then
        MsgBox "Falta el número de serie"
        TextBox1.SetFocus
        Exit Sub
    End If
    '
    Set h = Sheets("INVENTARIO")
    Set b = h.Columns("E").Find(TextBox1.Value, lookat:=xlWhole)
    If b Is Nothing Then
        MsgBox "El número de serie no existe"
        Exit Sub
    Else
        fila = b.Row
        ListBox1.AddItem h.Cells(fila, "A")
        ListBox1. List(ListBox1.ListCount - 1, 1) = h. Cells(fila, "B")
        ListBox1. List(ListBox1.ListCount - 1, 2) = h. Cells(fila, "C")
        ListBox1. List(ListBox1.ListCount - 1, 3) = h. Cells(fila, "D")
        ListBox1. List(ListBox1.ListCount - 1, 4) = h. Cells(fila, "E")
        ListBox1. List(ListBox1.ListCount - 1, 5) = h. Cells(fila, "F")
        ListBox1.List(ListBox1.ListCount - 1, 6) = fila
    End If
End Sub
'
Private Sub CommandButton3_Click()
'Por.Dante Amor
    'eliminar registro
    '
    If ListBox1.ListIndex = -1 Then
        MsgBox "Selecciona un registro del list"
        Exit Sub
    End If
    '
    Set h = Sheets("INVENTARIO")
    fila = ListBox1.List(ListBox1.ListIndex, 6)
    h.Rows(fila).Delete
    ListBox1.Clear
    MsgBox "Registro eliminado"
End Sub
'
Private Sub CommandButton2_Click()
    Unload Me
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Comparto el código de la Macro solucionada, con permiso tuyo Dante
Sé que a alguien más le puede servir

De antemano muchas gracias, estás a punto de salvarme la vida, jajaja

Private Sub CommandButton1_Click()
'Por.Dante Amor
    '
    'Buscar
    If TextBox1 = "" Then
        MsgBox "Falta el número de serie"
        TextBox1.SetFocus
        Exit Sub
    End If
    '
    Set h = Sheets("INVENTARIO")
    Set b = h.Columns("E").Find(TextBox1.Value, lookat:=xlWhole)
    If b Is Nothing Then
        MsgBox "El número de serie no existe"
        Exit Sub
    Else
        fila = b.Row
        ListBox1.AddItem h.Cells(fila, "A")
        ListBox1.List(ListBox1.ListCount - 1, 1) = h.Cells(fila, "B")
        ListBox1.List(ListBox1.ListCount - 1, 2) = h.Cells(fila, "C")
        ListBox1.List(ListBox1.ListCount - 1, 3) = h.Cells(fila, "D")
        ListBox1.List(ListBox1.ListCount - 1, 4) = h.Cells(fila, "E")
        ListBox1.List(ListBox1.ListCount - 1, 5) = h.Cells(fila, "F")
        ListBox1.List(ListBox1.ListCount - 1, 6) = fila
    End If
End Sub
'
Private Sub CommandButton3_Click()
'Por.Dante Amor
    'eliminar registro
    '
    If ListBox1.ListIndex = -1 Then
        MsgBox "Selecciona un registro del list"
        Exit Sub
    End If
    '
    Set h = Sheets("INVENTARIO")
    fila = ListBox1.List(ListBox1.ListIndex, 6)
    h.Rows(fila).Delete
    ListBox1.Clear
    MsgBox "Registro eliminado"
End Sub
'
Private Sub CommandButton2_Click()
    Unload Me
End Sub
Private Sub UserForm_Click()
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta
Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas