Macro que no funciona (de nuevo)

Hola, esta semana envíe una pregunta sobre una macro que no me funcionaba, se trataba de lo siguiente: "BD" es una base de datos con 15 registros y 17 columnas. Lo que quiero es que cuando coincidan 3 argumentos que se encuentran en las columnas 1, 10 y 14 con los valores 1,2 y 3 respectivamente, se elimine la fila entera. El código que escribí fue:
Sub EliminarRegistro()
valor1 = "4"
valor2 = "098-05-04"
valor3 = "Baja"
Sheets("BD").Select
Range("A1").Select
ActiveCell.Offset(1, 0).Range("A1").Select
While ActiveCell.Value <> ""
If ActiveCell.Value = valor1 And ActiveCell.Offset(0, 9).Value = valor2 _
And ActiveCell.Offset(0, 13).Value = valor3 Then
Selection.EntireRow.Delete
End If
Wend
End Sub
Me sugeriste que lo cambiara por una estructura For. Eso hice, y lo que me resulto fue lo siguiente:
Sub EliminarRegistro()
Dim Valor1, Valor2, Valor3
Dim X As Long
Valor1 = 4
Valor2 = "098-05-04"
Valor3 = "Baja"
Sheets("BD").Select
For X = Range("A65536").End(xlUp).Row To 1 Step -1
If Cells(X, 1) = Valor1 Then
If Cells(X, 1).Offset(0, 9) = Valor2 Then
If Cells(X, 1).Offset(0, 13) = Valor3 Then
Rows(X).Delete
End If
End If
End If
Next X
End Sub
Aun así no me funciona. ¿Me podrías ayudar por favor? Gracias
Respuesta
1
En realidad lo que tenía en mente era algo como esto:
Sub elimina()
V1 = 4
V2 = "098-05-04"
V3 = "Baja"
For x = 1 To 100
y = Range("A" & LTrim(x)).Value
w = Range("J" & LTrim(x)).Value
z = Range("N" & LTrim(x)).Value
If y = V1 And w = V2 And z = V3 Then
Rows(x).Delete
End If
Next x
End Sub
Revísalo para ver si te sirve.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas