1
« en: Viernes 6 de Abril de 2018, 16:55 »
Buenos días, no se absolutamente nada de esto por lo que quería pedir a ver si me dan una mano. Quiero hacer una Macro que elimine todas las filas en las que los datos de una columna sean distintos de los permitidos. Trate de estas dos maneras:
Sub CIIUSPESQUERAS()
Do While ActiveCell.Value <> ""
If ActiveCell.Value <> "50110" Then
If ActiveCell.Value <> "50120" Then
If ActiveCell.Value <> "50200" Then
If ActiveCell.Value <> "50300" Then
If ActiveCell.Value <> "50110" Then
If ActiveCell.Value <> "50130" Then
If ActiveCell.Value <> "31110" Then
If ActiveCell.Value <> "31120" Then
If ActiveCell.Value <> "31130" Then
If ActiveCell.Value <> "31200" Then
If ActiveCell.Value <> "31300" Then
If ActiveCell.Value <> "32000" Then
If ActiveCell.Value <> "102001" Then
If ActiveCell.Value <> "102002" Then
If ActiveCell.Value <> "151201" Then
If ActiveCell.Value <> "151202" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
Else
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Y de esta otra:
Sub CIIUSPESQUERAS()
Do While ActiveCell.Value <> ""
If ActiveCell.Value <> "50110" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "50120" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "50200" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "50300" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "50110" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "50130" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "31110" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "31120" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "31130" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "31200" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "31300" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "32000" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "102001" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "102002" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "151201" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value <> "151202" Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
Else
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub
También probé con un solo If y varios And, pero no me toma los And, no se por que. En todos los casos me tira Loop sin Do.
Espero sus respuestas, desde ya muchas gracias!!