Eliminar fila manteniendo tablas desde formulario vba

Seguramente es algo sencillo, pero sinceramente no soy programador y voy armando a medida que consigo los códigos.

Tengo este código, el cula es para eliminar datos y que al hacerlo se desplace hacía arriba, el problema es que ysa Select,¿podrían ayudarme con este código? Que no use select.

Private Sub LIMPIARLISTA_Click()
Dim FILA As Integer
Dim CODIGO As Integer
Dim SH As Worksheet
Set SH = Sheets("LV_PAMPA")
FILA = 7
CODIGO = ComboBox1
Do Until Hoja6.Cells(FILA, 1) = ""
If Hoja6.Cells(FILA, 1) = CODIGO Then
Hoja6.Cells.Cells(FILA, 1).Select
Dim respuesta As String
respuesta = MsgBox("EL REGISTRO SERA ELIMINADO. CONFIRMAR LA ELIMINACION?", vbYesNo)
If respuesta = vbYes Then
ActiveCell.Rows("1:1").EntireRow.Delete Shift:=xlUp
MsgBox ("REGISTRO ELIMINADO CON EXITO!!!")
Else
End If
End If
FILA = FILA + 1
Loop
Dim objeto As control
For Each objeto In Me.Controls
If TypeName(objeto) = "TextBox" Then
objeto.BackColor = &H80000005
End If
Next objeto
lbl_informacion = ""
End Sub

1 Respuesta

Respuesta
1

No recomiendo tener un msgbox por cada registro que vas a eliminar, ya estás en un userform, ya presionaste el botón eliminar y todavía otro mensaje para confirmar y otro mensaje para informar.

Te recomiendo lo siguiente. Prueba y me comentas:

Private Sub LIMPIARLISTA_Click()
  Dim objeto As Control
  Dim sh As Worksheet
  '
  Application.ScreenUpdating = False
  '
  If MsgBox("SERÁN ELIMINADOS LOS REGISTROS. CONFIRMAR LA ELIMINACION?", vbYesNo) = vbYes Then
    Set sh = Sheets("LV_PAMPA")
    If sh.AutoFilterMode Then sh.AutoFilterMode = False
    sh.Range("A6", sh.Range("A" & Rows.Count).End(1)).AutoFilter 1, ComboBox1
    sh.AutoFilter.Range.Offset(1).EntireRow.Delete
    sh.ShowAllData
  End If
  '
  For Each objeto In Me.Controls
    If TypeName(objeto) = "TextBox" Then
      objeto.BackColor = &H80000005
    End If
  Next objeto
  '
  lbl_informacion = ""
  Application.ScreenUpdating = False
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas