Eliminar filas

25/08/2005 - 21:08 por Age | Informe spam
Hola!

Quisiera pedirles ayuda, en una cedula que estoy haciendo... como explicarlo:

a1 es donde ingreso mis dato de manera manuel

b1 siguiente formula =SI(ESERROR(BUSCARV($A202,'Catalogo
Empleados'!$A$4:$G$499,3,0)),"",BUSCARV($A202,'Catalogo
Empleados'!$A$4:$G$499,3,0))

Por lo tanto si en a1 no tengo dato en b1 no aparce nada.

quiero aplicar este macro:

Sub QuitarFilasVacias()


Dim Fila As Integer

Application.ScreenUpdating = False
For Fila = ActiveCell.SpecialCells(xlLastCell).Row To 1 Step -1
If Cells(Fila, 1).Value = "" And Cells(Fila, 1).End(xlToRight).Column =
256 Then
Cells(Fila, 1).EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End Sub

********************************

estoy aplicando este macro para eliminar las filas vacias, pero como
realmente no estan vacias ya que contienen las fomrulas , ¿que midificaciones
debo hacerle o que nuevo macro puden generarse, para que en caso de que en a1
este vacio, toda la fila sea eliminada?

Gracias

Preguntas similare

Leer las respuestas

#1 KL
26/08/2005 - 10:30 | Informe spam
Hola Age,

Tal como lo describes, creo que te deberia bastar con el siguiente codigo:

Sub QuitarFilasVacias1()
Dim Fila As Long
Application.ScreenUpdating = False
With ActiveSheet
For Fila = .Cells(.Rows.Count, "A").End(xlUp).Row To 1 Step -1
If IsEmpty(.Cells(Fila, "A")) Then .Rows(Fila).Delete
Next
End With
Application.ScreenUpdating = True
End Sub

Sin embargo tu macro dice otra cosa. Si eso es lo que quieres, prueba el
codigo que te pongo mas abajo:

Sub QuitarFilasVacias2()
Dim Fila As Long, Sh As Worksheet, rng As Range, UFila As Long
Set Sh = ActiveSheet: Set rng = Sh.Cells
On Error Resume Next
UFila = Intersect( _
rng.Find("*", rng(1), xlValues, xlWhole, xlByRows, _
xlPrevious).EntireRow, _
rng.Find("*", rng(1), xlValues, xlWhole, xlByColumns, _
xlPrevious).EntireColumn).Row
With Application
.ScreenUpdating = False
For Fila = UFila To 1 Step -1
If (.Count(Sh.Rows(Fila)) + _
.CountIf(Sh.Rows(Fila), "?*")) = 0 Then
Sh.Rows(Fila).Delete
End If
Next
.ScreenUpdating = True
End With
End Sub

Saludos,
KL




"Age" wrote in message
news:
Hola!

Quisiera pedirles ayuda, en una cedula que estoy haciendo... como
explicarlo:

a1 es donde ingreso mis dato de manera manuel

b1 siguiente formula =SI(ESERROR(BUSCARV($A202,'Catalogo
Empleados'!$A$4:$G$499,3,0)),"",BUSCARV($A202,'Catalogo
Empleados'!$A$4:$G$499,3,0))

Por lo tanto si en a1 no tengo dato en b1 no aparce nada.

quiero aplicar este macro:

Sub QuitarFilasVacias()


Dim Fila As Integer

Application.ScreenUpdating = False
For Fila = ActiveCell.SpecialCells(xlLastCell).Row To 1 Step -1
If Cells(Fila, 1).Value = "" And Cells(Fila, 1).End(xlToRight).Column > 256 Then
Cells(Fila, 1).EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End Sub

********************************

estoy aplicando este macro para eliminar las filas vacias, pero como
realmente no estan vacias ya que contienen las fomrulas , ?que
midificaciones
debo hacerle o que nuevo macro puden generarse, para que en caso de que en
a1
este vacio, toda la fila sea eliminada?

Gracias
Respuesta Responder a este mensaje
#2 Age
26/08/2005 - 17:35 | Informe spam
Hola KL

Gracias por tu respuesta, tengo dos dudas, el segundo madro que es lo que
hace por que lo ejecute y no, no te que hicier algo diferente al anterio que
tu escribiste.

Otro punto mejore la cedula que antes te decribi, y en la celda a1 tengo la
siguiente formula:

=+SI('Catalogo Empleados'!G6="Semanal",'Catalogo Empleados'!A6,"")

que cambio debo hacerle a tu macro, ya que la celda relamente no esta vacio,
tiene una formula.

Gracias

***************************************************
"KL" escribió:

Hola Age,

Tal como lo describes, creo que te deberia bastar con el siguiente codigo:

Sub QuitarFilasVacias1()
Dim Fila As Long
Application.ScreenUpdating = False
With ActiveSheet
For Fila = .Cells(.Rows.Count, "A").End(xlUp).Row To 1 Step -1
If IsEmpty(.Cells(Fila, "A")) Then .Rows(Fila).Delete
Next
End With
Application.ScreenUpdating = True
End Sub

Sin embargo tu macro dice otra cosa. Si eso es lo que quieres, prueba el
codigo que te pongo mas abajo:

Sub QuitarFilasVacias2()
Dim Fila As Long, Sh As Worksheet, rng As Range, UFila As Long
Set Sh = ActiveSheet: Set rng = Sh.Cells
On Error Resume Next
UFila = Intersect( _
rng.Find("*", rng(1), xlValues, xlWhole, xlByRows, _
xlPrevious).EntireRow, _
rng.Find("*", rng(1), xlValues, xlWhole, xlByColumns, _
xlPrevious).EntireColumn).Row
With Application
.ScreenUpdating = False
For Fila = UFila To 1 Step -1
If (.Count(Sh.Rows(Fila)) + _
.CountIf(Sh.Rows(Fila), "?*")) = 0 Then
Sh.Rows(Fila).Delete
End If
Next
.ScreenUpdating = True
End With
End Sub

Saludos,
KL




"Age" wrote in message
news:
> Hola!
>
> Quisiera pedirles ayuda, en una cedula que estoy haciendo... como
> explicarlo:
>
> a1 es donde ingreso mis dato de manera manuel
>
> b1 siguiente formula =SI(ESERROR(BUSCARV($A202,'Catalogo
> Empleados'!$A$4:$G$499,3,0)),"",BUSCARV($A202,'Catalogo
> Empleados'!$A$4:$G$499,3,0))
>
> Por lo tanto si en a1 no tengo dato en b1 no aparce nada.
>
> quiero aplicar este macro:
>
> Sub QuitarFilasVacias()
>
>
> Dim Fila As Integer
>
> Application.ScreenUpdating = False
> For Fila = ActiveCell.SpecialCells(xlLastCell).Row To 1 Step -1
> If Cells(Fila, 1).Value = "" And Cells(Fila, 1).End(xlToRight).Column > > 256 Then
> Cells(Fila, 1).EntireRow.Delete
> End If
> Next
> Application.ScreenUpdating = True
> End Sub
>
> ********************************
>
> estoy aplicando este macro para eliminar las filas vacias, pero como
> realmente no estan vacias ya que contienen las fomrulas , ?que
> midificaciones
> debo hacerle o que nuevo macro puden generarse, para que en caso de que en
> a1
> este vacio, toda la fila sea eliminada?
>
> Gracias
Respuesta Responder a este mensaje
#3 KL
27/08/2005 - 13:51 | Informe spam
Hola Age,

Gracias por tu respuesta, tengo dos dudas, el segundo madro que es lo que
hace por que lo ejecute y no, no te que hicier algo diferente al anterio
que
tu escribiste.



El segundo macro no hace nada diferente al primero, pero si evalua si la
fila esta vacia de manera diferente: el primer macro solo examina si la
celda de la columna [A] esta vacia, mientras que el segundo macro examina
todas las celdas de la fila considerando vacias las que devuelvan ="".

Otro punto mejore la cedula que antes te decribi, y en la celda a1 tengo
la
siguiente formula:
=+SI('Catalogo Empleados'!G6="Semanal",'Catalogo Empleados'!A6,"")
que cambio debo hacerle a tu macro, ya que la celda relamente no esta
vacio,
tiene una formula.



Podrias usar el segundo macro en primer lugar o bien el primero modificado
de esta manera:

Sub QuitarFilasVacias1()
Dim Fila As Long
Application.ScreenUpdating = False
With ActiveSheet
For Fila = .Cells(.Rows.Count, "A").End(xlUp).Row To 1 Step -1
If .Cells(Fila, "A")="" Then .Rows(Fila).Delete
Next
End With
Application.ScreenUpdating = True
End Sub

Saludos,
KL
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida