Todoexpertos.com
http://www.todoexpertos.com
La respuesta está en Internet
Información de la pregunta
Título: OCULTAR FILAS VACIAS
Experto: elsamatilde
Valoración: 5
Fecha: 02/05/2008


OCULTAR FILAS VACIAS
Hola, lo que nesecito es poder ocultar un numero determinado de filas vacias, como por ejemplo 30, de la hoja llamada 1 a la hoja llamada 13. El criterio para ocultar las 30 filas vacias seria de las ultimas, ya que son las que menos utilizo, y preferentemente de abajo hacia arriba. Esto es para que si una de las 30 filas no esta vacia, no oculte 29, porque lo que nesecito en realidad es que oculte "LAS 30 ULTIMAS FILAS VACIAS" Tengo mi archivo por el cual estoy consultando en: http://www.subir-archivos.com.ar/ con el nombre de: -AA PEDIDOS PUEBLOS pero no esta la macro en el archivo. Yo cuento con esta: Sub OcultarFilas() Dim r As Range Application.ScreenUpdating = False 'volverla a True al finalizar la macro For Each r In Range("C3:C80") If r.Value = "" And r.Offset(0, 1) = "" And r.Offset(0, 2) = "" And _ r.Offset(0, 3) = "" And r.Offset(0, 4) = "" And r.Offset(0, 5) = "" And _ r.Offset(0, 6) = "" And r.Offset(0, 8) = "" And r.Offset(0, 9) = "" And _ r.Offset(0, 10) = "" And r.Offset(0, 11) = "" Then r.EntireRow.Hidden = True Else r.EntireRow.Hidden = False End If Next End Sub Pero esta macro con el rango que tiene oculta todas las vacias y yo lo que nesecito es que oculte las 30 ultimas vacias, si pongo el rango (c49:c80) y una de ellas no esta vacia, supongamos una , oculta 29 filas y no 30. ¿Me podrias ayudar? Desde ya muchas gracias. A la espera de una pronta respuesta, le saludo atte. Jacinto.

OCULTAR FILAS VACIAS
Hola: Viendo tu ejemplo, comprobé que todas tienen fórmulas hasta la fila 83, entonces no será necesario buscar la última fila, solo colocá ese valor en la variable (fila). Sub ocultaRango() 'macro desarrollada por Elsamatilde el 2/05/08 conta = 1 [b]'se posiciona en la primer hoja a evaluar repitiendo el bucle hasta la hoja 13[/b] Sheets("1").Select [b]While conta <= 13[/b] 'se guarda la última celda con fórmula o dato fila = Range("B65536").End(xlUp).Row   [b] ' o fila = 83[/b] 'seleccionar rango Range(Cells(fila, 2), Cells(fila - 30, 13)).Select Set rgo = Selection For Each celdita In rgo If celdita.Value <> "" Then MsgBox "no hay 30 vacías - no se elimina el rango" Exit Sub End If Next celdita 'se oculta el rango Selection.EntireRow.Hidden = True conta = conta + 1 ActiveSheet.Next.Select Wend End Sub Esto solo funcionará si las 13 hojas se encuentran continuas. Saludos Elsa [url=http://galeon.com/aplicaexcel]http://galeon.com/aplicaexcel[/url]

OCULTAR FILAS VACIAS
Hola de nuevo Elsa, probé la macro y me dice el mensaje de que no hay 30 vacias y no se elimina el rango en la hoja 3. puesto que  dentro de las ultimas 30 está una o mas que no estan vacias. Lo que yo necesito en realidad es que oculte dentro del rango fila 3 hasta la fila 81 inclusive, las 30 ultimas filas vacias. Ejemplo: si dentro de la fila 52 a la 81 (30 ultimas) estan todas vacias, oculta de la 52 a la 81 inclusive, pero en cambio si la 60 u otra no esta vacia, oculta fila 51 a 81 sin ocultar la 60, y asi tambien si hay mas filas que no esten vacias. A medida que haya mas filas ocupadas, irá subiendo de fila el rango Ejemplo: si demtro de (52:81) hay una fila no vacia el rango sera (51:81), si hay dos filas  no vacias el rango será (50:81) y asi sucesivamente solo que tienen que quedar a la vista las no vacias. Resumiendo lo que tengo que ocultar son "LAS 30 ULTIMAS FILAS QUE ESTEN VACIAS" Desde ya muchas gracias, esperando una pronta respuesta me encuentro a su disposicion Saluda atte Jacinto.  

OCULTAR FILAS VACIAS
Cambiá la rutina por esta otra: Sub ocultaRango2() 'macro desarrollada por Elsamatilde el 5/05/08 filas = 0 crit = 0 conta = 1 Sheets("1").Select While conta <= 13 'se guarda la última celda con fórmula o dato fila = Range("B65536").End(xlUp).Row 'seleccionar rango While filas <= 30 Range(Cells(fila, 2), Cells(fila, 13)).Select Set rgo = Selection For Each celdita In rgo If celdita.Value <> "" Then crit = 1 End If Next celdita 'se oculta la fila If crit = 0 Then Selection.EntireRow.Hidden = True filas = filas + 1 Else crit = 0 End If fila = ActiveCell.Offset(-1, 0).Row Wend filas = 0: crit = 0 conta = conta + 1 ActiveSheet.Next.Select Wend End Sub Probala y comentame. Saludos Elsa [url=http://galeon.com/aplicaexcel]http://galeon.com/aplicaexcel[/url]

Pregunta finalizada. Valoración: 5
Hola Elsa, queria decirte que usé la nueva macro y funciona  barbaro. Muchas gracias por tu ayuda. Espero que nos encontremos por aqui de nuevo. Atte. Jacinto


Volver al mensaje
http://www.todoexpertos.com/categorias/tecnologia-e-internet/software-y-aplicaciones/microsoft-excel/respuestas/1835812/ocultar-filas-vacias