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.