eliminar filas vacias

26/08/2006 - 00:53 por ST | Informe spam
tengo algunos problemillas con un codigo que estoy utilizando para
eliminar filas vacias, de un total de 25155 que tengo en la hoja de
calculo:

Sub depurar()
'[a1].Select
For i = 1 To 28155
If Cells(i, 1).Text = "" Then
Cells(i, 1).EntireRow.Delete
End If
Next i
MsgBox "Actividad terminad@"
[a1].Select
End Sub

el asunto es que la macro corre sin aparentes problemas pero me deja
algunas filas o mejor dicho celdas vacias y no me explico por que no
las quita ???
la macro no me envia ningun mensaje de error y como comprenderan la
inmensa cantidad de celdas a verificar,es absurdo hacerla una por una.

otro codigo que tambien me presenta problemillas :-) ,je,je es este:

Sub EliminarVacias()
[a1].Select
Do While ActiveCell.Row < 28155
If ActiveCell.Text <> "" Then
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.EntireRow.Delete
'Exit Do
End If
Loop
[a1].Select
MsgBox "Filas Vacias Eliminadas", , "aviso para " &
Application.UserName
End Sub

el asunto con esta macro es que efectivamente va quitando las filas de
las celdas vacias y como las va recorriendo,resulta que en la fila
24,xxx (cuando ya no hay datos),la macro sigue corriendo
indefinidamente,ya que aun no llega ala 28155.
por lo que tengo que presionar "Escape" 2 veces para detener la macro.
y la verdad como ya me hice "camotes",perfiero consultar a los
!!Buenos!!

salu2 y gracias anticipadas

pd.-tambien intente otra variante pero me sucede lo mismo que con la
1º macro [me deja filas vacias] :-(
Sub DepurarM()
Dim celda As Range
[a1:a28155].Select
For Each celda In Selection
If celda.Text = "" Then
celda.EntireRow.Delete
End If
Next celda
[a1].Select
MsgBox "Filas Vacias Eliminadas"
End Sub

o sea que efectivamente,!!!si estoy hecho "Camotes"!!!..a veces la
logica anda por los suelos (y la inteligencia y astucia tambien)
 

Leer las respuestas

#1 KL
29/08/2006 - 00:59 | Informe spam
Hola ST,

No se de que me estas hablando. Mi macro inicial usa la propiedad Value del objeto Cells implicitamente y no me produce errores. Se
perfectamente que hay una diferencia sustancial entre las propiedades Text y Value. Si lo que quieres decir es que tienes celdas
que contienen formula que duvuelve "" y solo necesitas eliminar las filas donde las celdas estan completamente vacias (cosa que no
habias especificado en la consulta), entonces podrias usar el siguiente codigo:

Sub depurar()
For i = Cells(65536, 1).End(xlUp).Row To 2 Step -1
If IsEmpty(Cells(i, 1)) Then Rows(i).Delete
Next i
MsgBox "Actividad terminad@"
End Sub

Saludos,
KL


"ST" wrote in message news:
Gracias KL

lo tenia enfrente de mi nariz y no lo veia !!!!
aun que debo decirte que tuve que hacerle una miniscula modificacion,ya
que de lo contrario me arroja el error 13 en tiempo de ejecucion (no
coinciden los tipos)

Sub depurar()
For i = Cells(65536, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 1).Text = "" Then Rows(i).Delete
Next i
MsgBox "Actividad terminad@"
End Sub

la ayuda dice que hay una diferencia entre c.value y c.text,checa esta
macro:

Sub diferencia_entre_Txt_Value()
Set c = Worksheets(2).Range("B1")
c.Value = 1198.3
c.NumberFormat = "$#,##0_);($#,##0)"
MsgBox c.Value
MsgBox c.Text
End Sub

Preguntas similares