Suprimir fila donde este un valor

31/03/2007 - 23:48 por Andrés | Informe spam
Hola amigos del foro.

Quiero eliminar todas las filas donde aparezca en una celda un cierto valor.
Y que la eliminación se produzca en todas las filas donde exista esa celda y
de todos los libros.

Por ejemplo, en todas las celdas donde aparezca el número 14, que quede
eliminada esa fila, y que esto suceda en todos los libros.

Una celda que contenga el 314 no quedaría eliminada.

Gracias por vuestra gran ayuda.

Andrés

Preguntas similare

Leer las respuestas

#1 Francisco Parrilla
01/04/2007 - 02:08 | Informe spam
Que te parece si para empezar aportas un poco mas de tu parte y cuelgas
algunos ejemplos de archivos ya elaborados para que alguien pueda empezar a
realizar
pruebas en ellos.

Saludos


"Andrés" escribió en el mensaje
news:
Hola amigos del foro.

Quiero eliminar todas las filas donde aparezca en una celda un cierto


valor.
Y que la eliminación se produzca en todas las filas donde exista esa celda


y
de todos los libros.

Por ejemplo, en todas las celdas donde aparezca el número 14, que quede
eliminada esa fila, y que esto suceda en todos los libros.

Una celda que contenga el 314 no quedaría eliminada.

Gracias por vuestra gran ayuda.

Andrés

Respuesta Responder a este mensaje
#2 Andrés
01/04/2007 - 10:14 | Informe spam
Hola Francisco.

Gracias por tu respuesta. He probado tu macro y funciona estupendamente.
Elimina las filas de la hoja activa.

Ahora estoy intentando eliminar las filas donde figure una celda con el
número 14, pero en TODAS LAS HOJAS. Y no consigo solucionarlo.

Como me indicabas que convendría un ejemplo, te lo he puesto en el link
siguiente:

http://es.geocities.com/swaplus/suprime.xls

Veras que es un libro con 3 hojas, que tienen una serie de valores (números)
y se trata de eliminar todas las filas en las que aparezca un 14 como valor
de la celda, y en todos las HOJAS.

Veras que he partido de tu macro y la he modificado un poco, pero no me
funciona bien.

Gracias por tu ayuda.

Andrés

"Francisco Parrilla" escribió:

Por ejemplo este codigo sencillo borra los datos que sugieres del libro activo y cuando no encuentra captura el error correspondiente y sale del DO ... LOOP


Sub Macro1()
Do
On Error GoTo salida
fila = Cells.Find(What:="14", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True _
, SearchFormat:=False).Row
MsgBox fila
Rows(fila).Select
Selection.Delete
Loop
salida:
End Sub



Francisco Parrilla
Operador de Sistemas
Comunidad:
http://groups.msn.com/ExcelVbaMacrosOffice
Ayuda y Soporte:
http://support.microsoft.com/search/?adv=1




"Francisco Parrilla" escribió en el mensaje news:#PfFdD$
> Que te parece si para empezar aportas un poco mas de tu parte y cuelgas
> algunos ejemplos de archivos ya elaborados para que alguien pueda empezar a
> realizar
> pruebas en ellos.
>
> Saludos
>
>
> "Andrés" escribió en el mensaje
> news:
> > Hola amigos del foro.
> >
> > Quiero eliminar todas las filas donde aparezca en una celda un cierto
> valor.
> > Y que la eliminación se produzca en todas las filas donde exista esa celda
> y
> > de todos los libros.
> >
> > Por ejemplo, en todas las celdas donde aparezca el número 14, que quede
> > eliminada esa fila, y que esto suceda en todos los libros.
> >
> > Una celda que contenga el 314 no quedaría eliminada.
> >
> > Gracias por vuestra gran ayuda.
> >
> > Andrés
> >
>
>

Respuesta Responder a este mensaje
#3 Andrés
01/04/2007 - 18:22 | Informe spam
Hola Fco.

Tu macro funciona perfectamente.

Dandole vueltas al final encontre una alternativa.

Sub suprime3()
Dim Hoja As Worksheet
Dim nucleo
Dim i As Byte
Dim celda
nucleo = Array(12, 14, 16)
For Each Hoja In Worksheets
Hoja.Select
For i = 1 To 3
Set celda = Range("a:e").Find(nucleo(i - 1))
Do While Not celda Is Nothing
Set celda = Range("a:e").Find(nucleo(i - 1))
If celda Is Nothing Then Exit Do
celda.EntireRow.Delete
Loop
Next i
Next Hoja
End Sub

Esta macro elimina tres valores en todas las hojas, y en un rango concreto
(columnas a:e). Seguro que se puede mejorar algo, pero funciona.

Te la he puesto en el ejemplo que colgé. Te recuerdo el link:

http://es.geocities.com/swaplus/suprime.xls

Gracias por tu ayuda.

Un saludo.

Andrés



"Francisco Parrilla" escribió:

Prueba agregando estas lineas en el mismo modulo

Sub hojas()
num = Sheets.Count
For i = 1 To num
Sheets(i).Select
Call "Macro1"
Next i
End Sub

Sub Macro1()
Do
On Error GoTo salida
fila = Cells.Find(What:="14", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True _
, SearchFormat:=False).Row
MsgBox fila
Rows(fila).Select
Selection.Delete
Loop
salida:
End Sub





Francisco Parrilla
Operador de Sistemas
Comunidad:
http://groups.msn.com/ExcelVbaMacrosOffice
Ayuda y Soporte:
http://support.microsoft.com/search/?adv=1


Respuesta Responder a este mensaje
#4 Francisco Parrilla
01/04/2007 - 21:08 | Informe spam
Interesante

Saludos


Francisco Parrilla
Operador de Sistemas
Comunidad:
http://groups.msn.com/ExcelVbaMacrosOffice
Ayuda y Soporte:
http://support.microsoft.com/search/?adv=1
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida