Te anexo los eventos que modifiqué
Private Sub CommandButton5_Click()
'carga filro
Set h1 = Sheets("Hoja1")
Set h2 = Sheets("Temporal")
'
If Me.txtFiltro1.Value = "" Then Exit Sub
If cmbEncabezado = "" Then Exit Sub
'
h2.Cells.Clear
ListBox1.RowSource = ""
h1.Rows(1).Copy h2.Rows(1)
'
j = cmbEncabezado.ListIndex + 1
n = 2
'
For i = 2 To h1.Range("a1").CurrentRegion.Rows.Count
If LCase(h1.Cells(i, j)) Like "*" & LCase(txtFiltro1) & "*" Then
h1.Rows(i).Copy h2.Rows(n)
n = n + 1
End If
Next i
u = h2.Range("A" & Rows.Count).End(xlUp).Row
If u = 1 Then
MsgBox "No existen registros con ese filtro", vbExclamation, "FILTRO"
Exit Sub
End If
ListBox1.RowSource = h2.Name & "!A2:AP" & u
End Sub
'Activar la celda del registro elegido
Private Sub ListBox1_Click()
' Range("a1").Activate
' cuenta = Me.ListBox1.ListCount
' Set rango = Range("A1").CurrentRegion
' For i = 0 To cuenta - 1
' If Me.ListBox1.Selected(i) Then
' valor = Me.ListBox1.List(i)
' rango.Find(What:=valor, lookat:=xlWhole, After:=ActiveCell).Activate
' End If
' Next i
End Sub
No necesitas seleccionar la celda, ya que acarrea problemas al borrar una fila. Para saber la fila seleccionada, mejor utiliza el método find, tal y como lo utilizo para borrar un registro.
'Eliminar el registro
Private Sub CommandButton4_Click()
'Por.Dante Amor
Set h1 = Sheets("Hoja1")
Set h2 = Sheets("Borrados")
'
If ListBox1.ListIndex = -1 Then
MsgBox "Selecciona un registro para eliminar"
Exit Sub
End If
'
Pregunta = MsgBox("Está seguro de eliminar el registro?", vbYesNo + vbQuestion, "PROYECCIONES - Búsquedas")
If Pregunta = vbNo Then Exit Sub
'
num_id = ListBox1.List(ListBox1.ListIndex, 0)
If IsNumeric(num_id) Then num_id = Val(num_id)
Set b = h1.Columns("A").Find(num_id, lookat:=xlWhole)
If Not b Is Nothing Then
u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
h1.Rows(b.Row).Copy h2.Rows(u2)
h1.Rows(b.Row).Delete
End If
Call CommandButton5_Click
End Sub
El registro se copia a la hoja "borrado" y se borra de la hoja1.
.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
.
Avísame cualquier duda
.