Borrar filas vacias o con un texto fijo

29/04/2005 - 11:34 por David Hernandez | Informe spam
Hola mi pregunta es la siguiente: en una columna tengo filas que tienen un
texto similar es decir (xxxxxxx + texto fijo), queria saber si podria borrar
de alguna forma esas filas que contienen esa expresión la parte de las "x"
pero el texto fijo se repita en las filas y en relacion con lo mismo si tengo
en una misma columna filas en blanco hay alguna forma de borrarlas para que
de esa forma no halla filas en balnco en la columna. Muchas gracias.

Un saludo

Preguntas similare

Leer las respuestas

#1 KL
29/04/2005 - 13:41 | Informe spam
Hola David,

Creo que la forma mas facil es ordenando la lista por la columna que
contiene los valores buscados.

Saludos,
KL


"David Hernandez" wrote in
message news:
Hola mi pregunta es la siguiente: en una columna tengo filas que tienen un
texto similar es decir (xxxxxxx + texto fijo), queria saber si podria
borrar
de alguna forma esas filas que contienen esa expresión la parte de las "x"
pero el texto fijo se repita en las filas y en relacion con lo mismo si
tengo
en una misma columna filas en blanco hay alguna forma de borrarlas para
que
de esa forma no halla filas en balnco en la columna. Muchas gracias.

Un saludo
Respuesta Responder a este mensaje
#2 David Hernandez
04/05/2005 - 09:37 | Informe spam
Hola KL, te voy a dejar un ejemplo de lo que tengo porque a lo mejor mi
explicacion no fue del todo buena.

COLUMNA A
1 xxxxxxxxxxxxxxxxx
2 xxxxxxxxxxxxxxxxxxxx
3 xxxxxxxxxxxxxxxxxxxx
4 12582828 - Almacen - Capital
5
6
7 xxxxxxxxxxxxxxxxxxxx
8 xxxxxxxxxxxxxxxxxxxx
9 xxxxxxxxxxxxxxxxxxxx
10 25866941 - Almacen - capital


Esto llega a unas 20.000 filas la separacion de filas blancas puede ser dos
o tres como ves en las filas 5 y 6. Y a lo mejor en vez de haber tres filas
con datos rellenos como ves en la 7,8 y 9, podrian ser solo dos filas o
cuatro. La finalidad de todo esto seria eliminar las filas en blanco y en las
filas donde pone un numero seguido de Almacen - capital eliminar por completo
esa fila. Haciendo lo de ordenar como me dijiste pederia la relacion porque
cada grupo tiene un significado si ordeno las filas en blanco desaparecen
pero perderia esa relacion. Bueno espero que con el ejemplo haberme explicado
mucho mejor.Muchas gracias

Saludos

"KL" escribió:

Hola David,

Creo que la forma mas facil es ordenando la lista por la columna que
contiene los valores buscados.

Saludos,
KL


"David Hernandez" wrote in
message news:
> Hola mi pregunta es la siguiente: en una columna tengo filas que tienen un
> texto similar es decir (xxxxxxx + texto fijo), queria saber si podria
> borrar
> de alguna forma esas filas que contienen esa expresión la parte de las "x"
> pero el texto fijo se repita en las filas y en relacion con lo mismo si
> tengo
> en una misma columna filas en blanco hay alguna forma de borrarlas para
> que
> de esa forma no halla filas en balnco en la columna. Muchas gracias.
>
> Un saludo



Respuesta Responder a este mensaje
#3 KL
04/05/2005 - 10:44 | Informe spam
Hola David,

1) Respecto a las filas en blanco:

Algunas formas de hacerlo:

a. Manual
- Selecciona todos los datos en la primera columna (Supongo q las filas con
datos no pueden tener la primera celda en blanco. Si no es asi, busca la
columna q responda a esta condicion).
- Ve al menu Edicion>Ir a...
- Pulsa el boton Especial
- Marca la cuarta opcion desde abajo a mano izquierda (creo q dice blancos
o vacios) y pulsa OK
- Ve al menu Edicion>Eliminar..., selecciona Fila Entera y pulsa Aceptar.

Este metodo es super rapido, pero tiene una limitacion importante y es que
no funcionara si el rango de la tabla tiene mas de 8000 filas en blanco NO
ADYACENTES (si son adyacentes o las no adyacentos son menos de ~8000 - no
pasa nada):

b. Macro
- Abre el fichero y activa la hoja con el rango a limpiar.
- Haz clic derecho sobre el nombre de la hoja q aparece en una de las
pestanas en la parte inferior izquierda de la ventana de Excel.
- Del menu contextual q aparecera a continuacion selecciona "Ver codigo" y
se
abrira el Editor VBA.
- En la ventana mas grande a la derecha copia el siguiente codigo:

'--Inicio Codigo
Sub BorrarFilasVacias()
uFila = ActiveSheet.Cells(65536, 1).End(xlUp).Row
Application.ScreenUpdating = False
For Fila = uFila To 2 Step -1
If Application.CountA(Rows(Fila)) = 0 Then Rows(Fila).Delete
Next Fila
End Sub
'--Fin Codigo

o bien puedes especificar el rango en el cual eliminar las filas vacias
expresamente,
p.ej.:

'--Inicio Codigo
Sub BorrarFilasVacias()
With ActiveSheet.Range("A1:D20000")
pFila=.Row
uFila = pFila+.Rows.Count-1
End With
Application.ScreenUpdating = False
For Fila = uFila To pFila Step -1
If Application.CountA(Rows(Fila)) = 0 Then Rows(Fila).Delete
Next Fila
End Sub
'--Fin Codigo

o bien, si se peuede decir que todas las filas que tienen celdas vacias en
una columna determinada (digamos la [A]) estan completamente vacias podrias
usar el siguiente codigo. Este codigo es super rapido, pero tiene una
limitacion importante y es que no funcionara si el rango de la tabla tiene
mas de 8000 filas en blanco NO ADYACENTES (si son adyacentes o las no
adyacentos son menos de ~8000 - no pasa nada):

'--Inicio Codigo
Sub BorrarFilasVacias()
Dim Rng As Range, Vacios As Range
Set Rng = ActiveSheet.Range("A1:A20000")

On Error Resume Next
Set Vacios = Rng.SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Vacios Is Nothing Then
MsgBox "No se han encontrado filas vacias"
Else
If Vacios.Address <> Rng.Address Then
Vacios.EntireRow.Delete
Else
MsgBox "El rango " & Vacios.Address & _
" parece tener mas " & Chr(13) & _
"de 8000 celdas vacias no adyacentes."
End If
End If
End Sub
'--Fin Codigo

- Pulsa Alt+F11 para volver a la hoja.
- Pulsa Alt+F8 y haz doble clic sobre "BorrarFilasVacias"

2) Respecto a esta frase:

...La finalidad de todo esto seria eliminar las filas en blanco y en las
filas donde pone un numero seguido de Almacen - capital eliminar por
completo
esa fila.



Me temo que sigo sin entenderla. Necesito que la reformules para poder
entender que es lo que quiere hacer con las filas que continen la cadena de
texto "Almacen - capital"

Saludos,
KL
Respuesta Responder a este mensaje
#4 David Hernandez
04/05/2005 - 11:55 | Informe spam
Hola KL, gracias por la rapidez en contestar y especialmente por la eficacia,
muchas gracias. Ya he solucionado el problemas de las filas en blanco.

Ahora paso a contarte mejor duda, porque realmente me he explicado de pena.
en las filas donde me aparece un texto alfanumerico seguido de "Almacen -
capital" lo que quiero es seleccionarlas y eliminarlas. Segun el ejemplo que
antes te he descrito lo que me gustaria hacer seria eliminar las filas A4 y
A10. El texto alfanumerico varia lo que si es fijo en las filas que quiero
borrar es el texto siguiente: "- Almacen - capital". Muchas gracias

Saludos

"KL" escribió:

Hola David,

1) Respecto a las filas en blanco:

Algunas formas de hacerlo:

a. Manual
- Selecciona todos los datos en la primera columna (Supongo q las filas con
datos no pueden tener la primera celda en blanco. Si no es asi, busca la
columna q responda a esta condicion).
- Ve al menu Edicion>Ir a...
- Pulsa el boton Especial
- Marca la cuarta opcion desde abajo a mano izquierda (creo q dice blancos
o vacios) y pulsa OK
- Ve al menu Edicion>Eliminar..., selecciona Fila Entera y pulsa Aceptar.

Este metodo es super rapido, pero tiene una limitacion importante y es que
no funcionara si el rango de la tabla tiene mas de 8000 filas en blanco NO
ADYACENTES (si son adyacentes o las no adyacentos son menos de ~8000 - no
pasa nada):

b. Macro
- Abre el fichero y activa la hoja con el rango a limpiar.
- Haz clic derecho sobre el nombre de la hoja q aparece en una de las
pestanas en la parte inferior izquierda de la ventana de Excel.
- Del menu contextual q aparecera a continuacion selecciona "Ver codigo" y
se
abrira el Editor VBA.
- En la ventana mas grande a la derecha copia el siguiente codigo:

'--Inicio Codigo
Sub BorrarFilasVacias()
uFila = ActiveSheet.Cells(65536, 1).End(xlUp).Row
Application.ScreenUpdating = False
For Fila = uFila To 2 Step -1
If Application.CountA(Rows(Fila)) = 0 Then Rows(Fila).Delete
Next Fila
End Sub
'--Fin Codigo

o bien puedes especificar el rango en el cual eliminar las filas vacias
expresamente,
p.ej.:

'--Inicio Codigo
Sub BorrarFilasVacias()
With ActiveSheet.Range("A1:D20000")
pFila=.Row
uFila = pFila+.Rows.Count-1
End With
Application.ScreenUpdating = False
For Fila = uFila To pFila Step -1
If Application.CountA(Rows(Fila)) = 0 Then Rows(Fila).Delete
Next Fila
End Sub
'--Fin Codigo

o bien, si se peuede decir que todas las filas que tienen celdas vacias en
una columna determinada (digamos la [A]) estan completamente vacias podrias
usar el siguiente codigo. Este codigo es super rapido, pero tiene una
limitacion importante y es que no funcionara si el rango de la tabla tiene
mas de 8000 filas en blanco NO ADYACENTES (si son adyacentes o las no
adyacentos son menos de ~8000 - no pasa nada):

'--Inicio Codigo
Sub BorrarFilasVacias()
Dim Rng As Range, Vacios As Range
Set Rng = ActiveSheet.Range("A1:A20000")

On Error Resume Next
Set Vacios = Rng.SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Vacios Is Nothing Then
MsgBox "No se han encontrado filas vacias"
Else
If Vacios.Address <> Rng.Address Then
Vacios.EntireRow.Delete
Else
MsgBox "El rango " & Vacios.Address & _
" parece tener mas " & Chr(13) & _
"de 8000 celdas vacias no adyacentes."
End If
End If
End Sub
'--Fin Codigo

- Pulsa Alt+F11 para volver a la hoja.
- Pulsa Alt+F8 y haz doble clic sobre "BorrarFilasVacias"

2) Respecto a esta frase:

> ...La finalidad de todo esto seria eliminar las filas en blanco y en las
> filas donde pone un numero seguido de Almacen - capital eliminar por
> completo
> esa fila.

Me temo que sigo sin entenderla. Necesito que la reformules para poder
entender que es lo que quiere hacer con las filas que continen la cadena de
texto "Almacen - capital"

Saludos,
KL



Respuesta Responder a este mensaje
#5 KL
04/05/2005 - 15:35 | Informe spam
Hola David,

Entonces es tan simple como el siguiente codigo (con 20000 filas tardara un
pelin)

Saludos,
KL

'--Inicio Codigo
Sub BorrarFilasVacias()
With ActiveSheet
pFila = .Range("A1:D20000").Row
uFila = pFila + .Range("A1:D20000").Rows.Count - 1
Application.ScreenUpdating = False
For Fila = uFila To pFila Step -1
If Application.CountA(.Rows(Fila)) = 0 Or _
.Cells(Fila, "A").Value Like "*- Almacen - capital*" _
Then
.Rows(Fila).Delete
End If
Next Fila
End With
End Sub
'--Fin Codigo
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida