Macro busque un valor en columna y borre desde ahí las columnas hasta llegar a una vacía

Hola el problema es que bajo una base de datos que contiene cientos de tablas, de 2 tipos en especifico y están colocadas en una si y una no, es decir

Volumen

xxx xxx xxx xxx

xxx xxx xxx xxx

Costo

xxx xxx xxx xxx

xxx xxx xxx xxx

Volumen

xxx xxx xxx xxx

xxx xxx xxx xxx

Costo

xxx xxx xxx xxx

xxx xxx xxx xxx

Y asi sucesivamente cientos de tablas, pero bien, lo que yo necesito es si podrían apoyarme si conocen de una macro que pueda iniciar desde la celda A1 a hacer la búsqueda de la palabra Volumen y borre todas las filas desde ahi incluyendo esa misma fila y hasta toparse con una fila en blanco, para que asi me elimine todas las tablas de "Volumen" y yo pueda trabajar,filtrar y hacer búsquedas en las puras tablas de "costo", ya que ahora lo que hago es eliminarlas manualmente y eso me lleva mucho tiempo, espero puedan apoyarme o guiarme de como hacerlo, en vb. De antemano gracias

1 Respuesta

Respuesta
1

Te mando mi solución y sigue mi ejemplo: Voy a suponer que tienes todos los datos apilados en la columna A desde A1 hacia abajo. Posiciónate en la celda A1 y ejecuta esta macro:

Sub prueba()
'Por Luismondelo
Range("a65000").End(xlUp).Offset(1, 0).Value = "final"
Do While ActiveCell.Value <> "final"
If ActiveCell.Value = "volumen" Then
primera = ActiveCell.Address
ElseIf ActiveCell.Value = "costo" And primera <> "" Then
ultima = ActiveCell.Offset(-1, 0).Address
End If
If primera <> "" And ultima <> "" Then
Range(primera & ":" & ultima).Delete
primera = ""
ultima = ""
GoTo salto
End If
ActiveCell.Offset(1, 0).Select
If primera <> "" And ActiveCell.Value = "final" Then
Range(primera & ":" & ActiveCell.Address).Delete
primera = ""
ultima = ""
Exit Sub
End If
salto:
Loop
End Sub

recuerda finalizar y puntuar

Hola, antes que nada quiero agradecer tu tiempoy tu interes, y bueno me gustaría comentar que tu formula borra las columnas, si borra las columnas que dicen "Volumen"pero lo que yo necesito es que borre las filas como había mencionado en la pregunta inicial. es decir que primero busque la palabra "Volumen" y que desde esa fila (si, incluyendo la misma fila donde aparece la palabra volumen borre completamente toda fila desde ese punto y hasta encontrarse con una fila en blanco, ¿esto para que? el motivo principal es que me deje solo y unicamente las tablas que tengan contenidos que tengan el titulo de "costos", por que en las tablas de "volumen" esas tablas tiene datos de piezas, y no datos financieros, asi que borrando esas tablas yo podre trabajar solamente con sumas de dinero, te muestro un ejemplo espero puedas apoyarme, la idea principal ya la tienes espero que solo sea nesesario alguna pequela correccion a tu formula. slds y gracias.

antes

Volumen
xxx xxx xxx xxx
xxx xxx xxx xxx

Costo
xxx xxx xxx xxx
xxx xxx xxx xxx

Volumen
xxx xxx xxx xxx
xxx xxx xxx xxx

Costo
xxx xxx xxx xxx
xxx xxx xxx xxx

.......

y lo que necesito que quede después;

Costo
xxx xxx xxx xxx
xxx xxx xxx xxx

Costo
xxx xxx xxx xxx
xxx xxx xxx xxx

........

Te mando otra propuesta: sigo con mi ejemplo en el que los datos están apilados en la columna A desde A1 hacia abajo.

Posiciónate en la celda A1 y ejecuta esta macro:

Sub prueba2()
'Por Luismondelo
Range("a65000").End(xlUp).Offset(1, 0).Value = "final"
Do While ActiveCell.Value <> "final"
If ActiveCell.Value = "volumen" Then
Range(ActiveCell, ActiveCell.End(xlDown).Offset(1, 0)).Delete
End If
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.ClearContents
End Sub

esta eliminando solo la fila en donde encuentra la palabra "volumen" y raramente borra también una columna (la de extrema derecha, que tiene datos importantes) pero me ha servido como base para poder hacerle ajustes, muchas gracias por tu apoyo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas