Eliminar filas a partir de un dato de una BD

Deseo eliminar todas las filas siguientes a un dato en una columna de una BD en excel, para ello ya tengo una macro, en ella me encuentra el dato, pero en vez de sitiarse en el para eliminar las filas, se sitúa en una celda (11978) y a partir de allí elimina las filas, les copo parte de la macro:

Columns("N:N").Select Selection.Find(What:="#", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate

Range("N11978").Select

Range(Selection, Selection.End(xlDown)).Select

Rows("11978:500000").Select

Range("N11978").Activate

Selection.Delete Shift:=xlUp

Agradeceré su apoyo para resolver mi consulta.

Saludos,

1 Respuesta

Respuesta
1

La macro asi como esta mostrada hace exactamente esto:

Columns("N:N").Select Selection.Find(What:="#", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate

' BUSCA UN VALOR

Range("N11978").Select

' SELECCIÓN LA CELDA N11978

Range(Selection, Selection.End(xlDown)).Select

' Selección desde la celda n11978 hasta la ultima que exista... quien sabe sea n12300, n5000 o si n11978 era la ultima seleccionara hasta n1048576 (ultima fila de excel)

Rows("11978:500000").Select

' SELECCCIONA TODA LA CELDA DE 11978 A 500000

Range("N11978"). Activate

' SELECCCIONA LA CELDA N11978

Selection.Delete Shift:=xlUp

Borra la celda n11978 y se corre hacia arriba todos los datos de solo esa columna...

Asi que me parece que hace exactamente lo que dice... pero la pregunta es.. ¿qué cosa quieres que haga realmente?

Si necesita borrar la fila donde estaba el dato que se buscó en la primera instrucción entonces todas las demás instrucciones no deben estar... y debería solo haber:

Selection.EntireRow.Delete

¿Es eso lo que necesitas?

Estimado Experto, lo que sucede es que no quiero que se sitúe en la celda 11978 sino n el valor encontrado (el símbolo #) y que de allí al final borre las líneas sin importar en que celda se encuentre este símbolo.

Gracias por la atención.

Saludos,

LSB

Cambiemos la macro asi:

Columns("N:N").Select
Selection.Find(What:="#", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate

ActiveCell.Select

Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas