Eliminar filas en excel basadas en varios criterios contenidos en otra hoja de excel (VBA)

Específicamente necesito eliminar las filas que contengan los criterios listados en la hoja2, pero que en la data estos se encuentra mezclados con otras letras ejemplo: argumento RTS, se encuentra en la data como AMAZONRTS. Por lo tanto se eliminaría la fila. Agradecería de su urgente ayuda.

Por ahora solo la borra si el criterio aparece solo (RTS) y no compuesto (AMAZONRTS):

Sub eliminarfilas2()

Dim I As Integer, j As Integer, nfilas As Integer, borrafila As Boolean

qcol = InputBox("Columna")

Dim qcrits() As Variant

ncrits = Selection.Cells.Count

ReDim qcrits(1 To ncrits)

j = 1

For Each cell In Selection.Cells

qcrits(j) = cell.Value

j = j + 1

Next cell

Sheets("hoja1").Activate

nfilas = ActiveSheet.Cells(1, 1).CurrentRegion.Rows.Count 'tamano del rango'

For I = nfilas To 2 Step -1

Cells(I, qcol).Select

For j = 1 To ncrits

If Cells(I, qcol) = qcrits(j) Then

'msgbox "Deleted"

 ActiveCell.EntireRow.Select

Selection.Delete

Exit For

End If

Next j

Next I

End Sub

2 Respuestas

Respuesta

Prueba en vez de esto en tu macro

If Cells(I, qcol) = qcrits(j) Then

Esto

strg = Cells(I, qcol)

strg1 = qcrits(j)
If "*" & UCase(strg) Like UCase(strg1) & "*" Then

Si tu macro funciona borrará todo lo que contenta el string que requieres.

Prueba y comenta

Respuesta
1

Cambia esta línea:

If Cells(I, qcol) = qcrits(j) Then

Por esta:

If lcase(Cells(I, qcol)) like "*" & lcase(qcrits(j)) & "*" Then

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas