Eliminar filas de excel con varios criterios

Cordial saludo.

Soy nuevo en este tema, espero me puedan ayudar.

tengo una hoja de excel en la cual debo eliminar todas las filas si se cumple:

1. Si la columna F tiene valores = 0 o vacias.

2. Si la columna D empieza por 58 ó 7505 ó 530234.

3. Si las columnas F,G,H tienen datos.

Encontre esta macro que elimina las que empiezan por "anulada" pero es un valor fijo de 7 digitos, el mio debe variar.

Sub comprobar()
Dim texto, palabra As String
Range("A1").Select
Do While ActiveCell.Address <> "$A$65001"
texto = ActiveCell.Text
palabra = Left(texto, 7)
If palabra = "Enviada" Then
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub

y este me elimina vacias y con ceros pero elimina si contiene el 58 en cualquier posicion y no me sirve es solo al comienzo.

Sub elimnar_celdas_filas_vacias()
Dim tipo As Integer
Dim criterio As String
Dim check As Boolean
Dim celda As Range

Set Rng = Application.InputBox(prompt:="seleccione la celda inicial donde empieza su lista de datos", Type:=8)
tipo = Application.InputBox(prompt:="Escriba 1: Eliminar celdas si CONTIENE" & Chr(13) & "Escriba 2: Eliminar celdas si es IGUAL A" & Chr(13) & "Si desea eliminar las celdas vacías opcion 2", Type:=1, Title:="ELIMINAR SEGÚN CRITERIOS")
criterio = Application.InputBox(prompt:="Escriba el criterio que se usará para eliminar las celdas" & Chr(13) & "Para eliminar las celdas vaciías deje en blanco este recuadro", Type:=2)

line1:

For Each celda In Range(Rng.Address, Cells(Rows.Count, Rng.Column).End(xlUp).Address)

Select Case tipo

Case 2
If celda = criterio Then
celda.EntireRow.Delete
GoTo line1
End If

Case 1
If celda.Row <> Rng.Row And InStr(UCase(celda.Value), UCase(criterio)) Then
'celda.Offset(0, 1).Value = "ELIMINAR"
celda.EntireRow.Delete
GoTo line1

Else
'celda.Offset(0, 1).Value = "NO ELIMINAR"
End If

End Select
Next
End Sub

Les agradezco la ayuda es que me ralentiza el proceso hacer esto todos los dias.

Añade tu respuesta

Haz clic para o