Eliminar Celdas vacias

03/06/2007 - 19:15 por Carmen | Informe spam
Hola, quería preguntaros como se pueden eliminar las filas que no tienen
nada. Pongo un ejemplo en la Fila B tengo muchas celdas utilizadas, hasta la
7100, pero muchas no tienen nada, por ejemplo en
B1 hay el valor 5
B2 hay el valor 3
B3 hay el valor (no hay nada)
B4 hay el valor 1
B5 hay el valor (no hay nada)
etc...
Quisiera eliminar las celdas de la columna B donde no hay nada
¿podéis decirme como hacerlo?
Un saludo y gracias

Preguntas similare

Leer las respuestas

#1 Feliciano
03/06/2007 - 20:03 | Informe spam
Hola Carmen:
En el dia de hoy Hector ha contestado a una pregunta similar (mira eliminar
duplicados).
Pero antes de nada deberas insertar celda para poner titulo al rango de
busqueda [B2:B7101].
Para tu exposicion [vacias en vez de duplicados] tendras que hacer pocos
cambios. A saber:
si suponemos que la fila 1 [A1] 'B1 en tu caso' contiene algun titulo... y
que tienes *libres* al menos el rango 'C1:C2'
prueba usando [menu] datos / filtro / filtro avanzado... +/- de la
siguiente manera:

1) pon la siguiente formula SOLO en la celda 'C2'
=contar.si($a$1:a2,a2)>1 '=CONTAR.SI($B$1:B2;B2)=0 en tu caso'
2) selecciona alguna celda en la columna 'A', 'B en tu caso'
3) ve a [menu] datos / filtro / filtro avanzado...
a) deja la seleccion 'sugerida' [$B$1:$B$7101 en tu caso] y la opcion
de filtrar la lista sin moverla a otro lugar
b) indica como 'rango de criterios' las celdas [C1:C2] <= incluyendo
la 'C1' vacia
-> termina el filtrado
4) selecciona el rango filtrado SIN el titulo ...
[menu] edicion / eliminar fila <= y *confirmas*
5) despues usa nuevamente [menu] datos / mostrar todo



Saludos,

Feliciano.
"Carmen" <carmenARROBAhotmail.com> escribió en el mensaje
news:
Hola, quería preguntaros como se pueden eliminar las filas que no tienen
nada. Pongo un ejemplo en la Fila B tengo muchas celdas utilizadas, hasta
la 7100, pero muchas no tienen nada, por ejemplo en
B1 hay el valor 5
B2 hay el valor 3
B3 hay el valor (no hay nada)
B4 hay el valor 1
B5 hay el valor (no hay nada)
etc...
Quisiera eliminar las celdas de la columna B donde no hay nada
¿podéis decirme como hacerlo?
Un saludo y gracias


Respuesta Responder a este mensaje
#2 JRod
03/06/2007 - 20:20 | Informe spam
Ola Carmen, se quieres que toda la linea correspondente a la celda vacia
seja apagada, entonces:


Sub FindAndDelete()

Dim myRange As Range

On Error Resume Next
Set myRange = Range("B:B").SpecialCells(xlCellTypeBlanks)(1)
On Error GoTo 0

If myRange Is Nothing Then
MsgBox "No hay celdas vacias en el Range!" ' mi espanhol es muy
malo... escusa me.
Else
For Each cell In myRange
cell.EntireRow.Delete
Next cell
End If

End Sub


JRod
Microsoft [MVP] - Excel
blog: http://EXCELer.blogspot.com
site: http://www.exceler.org (Já em pleno!!!!)
email1:
email2:
MVP Microsoft Profile:
https://mvp.support.microsoft.com/p....Rodrigues
MVP Web Sites: http://www.mvps.org/links.html#Excel
This posting is provided "AS IS" with no warranties, and confers no rights.


______________________________________

"Carmen" <carmenARROBAhotmail.com> escreveu na mensagem
news:
Hola, quería preguntaros como se pueden eliminar las filas que no tienen
nada. Pongo un ejemplo en la Fila B tengo muchas celdas utilizadas, hasta
la 7100, pero muchas no tienen nada, por ejemplo en
B1 hay el valor 5
B2 hay el valor 3
B3 hay el valor (no hay nada)
B4 hay el valor 1
B5 hay el valor (no hay nada)
etc...
Quisiera eliminar las celdas de la columna B donde no hay nada
¿podéis decirme como hacerlo?
Un saludo y gracias


Respuesta Responder a este mensaje
#3 Carmen
03/06/2007 - 20:23 | Informe spam
Muchas gracias Feliciano. No me había dado cuenta de la exposición que tiene
Héctor, gracias.
Saludos
Respuesta Responder a este mensaje
#4 Carmen
03/06/2007 - 22:44 | Informe spam
Muchísimas gracias, sois unos genios del Excel, pero ¿dónde pueden
aprenderse tantas cosas? mira que veré libros y ninguno cuenta tantas cosas.
Gracias y un saludo
Carmen

"JRod" escribió en el mensaje
news:
Ola Carmen, se quieres que toda la linea correspondente a la celda vacia
seja apagada, entonces:


Sub FindAndDelete()

Dim myRange As Range

On Error Resume Next
Set myRange = Range("B:B").SpecialCells(xlCellTypeBlanks)(1)
On Error GoTo 0

If myRange Is Nothing Then
MsgBox "No hay celdas vacias en el Range!" ' mi espanhol es muy
malo... escusa me.
Else
For Each cell In myRange
cell.EntireRow.Delete
Next cell
End If

End Sub


JRod
Microsoft [MVP] - Excel
blog: http://EXCELer.blogspot.com
site: http://www.exceler.org (Já em pleno!!!!)
email1:
email2:
MVP Microsoft Profile:
https://mvp.support.microsoft.com/p....Rodrigues
MVP Web Sites: http://www.mvps.org/links.html#Excel
This posting is provided "AS IS" with no warranties, and confers no
rights.


______________________________________

"Carmen" <carmenARROBAhotmail.com> escreveu na mensagem
news:
Hola, quería preguntaros como se pueden eliminar las filas que no tienen
nada. Pongo un ejemplo en la Fila B tengo muchas celdas utilizadas, hasta
la 7100, pero muchas no tienen nada, por ejemplo en
B1 hay el valor 5
B2 hay el valor 3
B3 hay el valor (no hay nada)
B4 hay el valor 1
B5 hay el valor (no hay nada)
etc...
Quisiera eliminar las celdas de la columna B donde no hay nada
¿podéis decirme como hacerlo?
Un saludo y gracias







Respuesta Responder a este mensaje
#5 KL
03/06/2007 - 23:33 | Informe spam
Hola chicos,

"JRod" escribio:

Sub FindAndDelete()

Dim myRange As Range

On Error Resume Next
Set myRange = Range("B:B").SpecialCells(xlCellTypeBlanks)(1)
On Error GoTo 0

If myRange Is Nothing Then
MsgBox "No hay celdas vacias en el Range!" ' mi espanhol es muy malo... escusa me.
Else
For Each cell In myRange
cell.EntireRow.Delete
Next cell
End If

End Sub





Me temo que el codigo de Jorge tiene algunos problemas:

1) La siguiente linea reduce 'a priori' myRange a una celda haciendo que siempre solo se elimine la primera fila que tenga la celda
vacia en la columna [B]

Set myRange = Range("B:B").SpecialCells(xlCellTypeBlanks)(1)

2) Aunque corrijamos el primer problema, tenemos el siguiente fragmento que intentara eliminar las filas con celda vacia una por una
desde arriba hacia abajo.

For Each cell In myRange
cell.EntireRow.Delete
Next cell

El problema esta en que al eliminar la primera cambiaran las coordenadas del resto de las celdas que estan mas abajo y nuestro
codigo perdera completamente los nortes.

3) El procedimiento usa un bucle donde no tal es necesario

4) Finalmente, y esto puede que no sea tan grave para este caso concreto, el metodo SpecialCells tiene un pequeno [pero muy
traidor] problema con las areas no contiguas: http://support.microsoft.com/kb/832293

Asumiendo que es poco probable que se de el caso descrito en el punto 4), probad el siguiente codigo:

Sub FindAndDelete()
Dim rng As Range
'Invocamos el rango usado para evitar el problema
'descrito en este articulo: http://support.microsoft.com/kb/231007
ActiveSheet.UsedRange
On Error Resume Next
Set rng = Range("B:B").SpecialCells(xlCellTypeBlanks)
If Err.Number <> 0 Then
MsgBox "No hay celdas vacias en el rango!"
Exit Sub
ElseIf rng.Rows.Count = Range("B:B").Rows.Count Then
MsgBox "Demasiadas areas no contiguas!"
Exit Sub
End If
rng.EntireRow.Delete
End Sub

Saludos,
KL
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida