Como ocultar filas sin datos

Quisiera saber como ocultar filas, tengo una hoja1 que busca datos en la hoja2 con el comando buscar quisiera ocultar las filas que no tengan datos de la hoja1. Si puede ser sin macros mejor.

1 respuesta

Respuesta
1
Debes seleccionar las filas luego presionas click derecho y eliges ocultar...
¿Esto es lo que necesitabas?
Gracias, pero eso ya lo hacia hasta ahora, quería saber si hay alguna fórmula que me lo hiciese automático, o una macro que detectase que no hay datos es una celda concreta y ocultase toda la fila, me imagino que esta macro se puede hacer por eso prefería una fórmula para que se ejecutase sola.
Muchas gracias, a ver si puedes ayudarme
Pues esto lo hace una macro, ¿ahora la pregunta es? Las celdas vacías que necesitas que revise la macro para ocultar la fila, esta en un columna especifica, en varias o no lo tienes determinado, el numero de filas a revisar es limitado o quieres que te revise todo el archivo.
Recuerda que mientras más info revise más tiempo se va a demorar.
Están en varias columnas y si el numero de filas es limitado, no seria toda la hoja.
Entiendo que no hay un comando que sea ocultarfila, por ejemplo.
El problema no es el comando, si no la condición, para tu caso que las filas no tengan info, yo pensaría en una macro que cree una columna la cual verifique si hay o no datos en esa fila, luego según esta info oculte las filas en las que no encuentre info y por ultimo elimine la columna creada, sobre cual es el rango de filas, pensaría en buscar la ultima llena con un comando, para limitar este tema, pero no se si eso sea lo que necesitas, te paso una macro donde coloco directamente un rango definido de filas y si es lo que necesitas finaliza la pregunta, caso contrario, si consideras que el rango debe ser medido buscando desde la primera fila hasta la ultima fila llena me lo pasas y te envío las correcciones necesarias. La debilidad de la segunda puede ser en la info que presentas, ya que puede mostrar filas que no deseas que se vean.
Sub Oculta_Vacias()
'
    Columns("A:A").Select
    Selection.Insert Shift:=xlToRight
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "=COUNTA(RC[1]:RC[16383])"
    Range("A1").Select
    Selection.Copy
    Range("A1:A5000").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    For KIKE = 1 To 5000
    a = a + 1
    If Range("A" & a).Value = 0 Then
    Rows(a).Select
    Selection.EntireRow.Hidden = True
    End If
    Next KIKE
       Columns("A:A").Select
    Selection.Delete Shift:=xlToLeft
    Range("A1").Select
End Sub
Para mi ejemplo medí el tiempo y fue de 35 segundos
Buff, soy muy burro en esto, me puedes decir paso a paso que tengo que hacer con esta macro.
¿Cómo se ejecuta? ¿Dónde la pongo?...
Pues la manera sencilla creo que sería la siguiente:
Insertas un objeto, el que quieras, un rectángulo, un circulo, como te indique como tu lo veas. Luego le das click derecho y eliges asignar macro, te aparecerá un cuadro en el que tendrás que elegir la opción nuevo.
Te aparecera una ventana de visual en donde deberas pegar el codigo anterior, pero si en Sub ni el end sub, pero si en medio del sub y end sub que te aparece directamente, espero haberme explicado.
El sub y el end sub informan donde comienza y donde termina el código, por eso borras el mio ya que al asignar la macro la misma macro te define donde debes colocar tus códigos.
Si tienes dudas me avisas
Lo he hecho como dices, y si parece que lo va a hacer, pero... se queda "calculando celdas 100%" y no pasa de hay, espere más de 20 minutos.
¿Habré hecho algo mal?
Pues dime que tipo de maquina tienes, es decir cuanto de memoria ram, cuando de disco duro, que procesador tienes, ese tipo de especificaciones para decirte si es problema de velocidad en tu maquina o puede ser un problema de la macro que se te queda, pero de cajón te digo que para mi es tu máquina que es lenta, ya que te pase lo que se demora cuando yo la corro.
Ahora, si le subiste el rango de ley se demora, mi prueba fue con el rango de 5000 filas
Mi equipo es : intel core i3-330M
1GB VRAM 4GB ddr3 Memory
Te adjunto la macro que tengo echa y en donde inserto la que tu me dijiste:
Sub TODOSRA()
Dim i, fil, sh, busc
On Error Resume Next
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Set sh = ActiveSheet
For i = 3 To 138
    busc = sh.Cells(i, 3).Value
    If busc <> "" Then
        fil = 0
        fil = Application.WorksheetFunction.Match(busc, shFam.[b:b], 0)
        If fil = 0 Then
            Err.Clear
            sh.Cells(i, 1).Value = 9
        Else
            sh.Cells(i, 1).Value = shFam.Cells(fil, 9).Value
        End If
    Else
        If Mid(sh.Cells(i, 4), 1, 5) = "TOTAL" Then sh.Cells(i, 1).Value = 8
    End If
Next
Módulo2.ColorearSRA
Módulo3.TOTALSRA
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
 Columns("A:A").Select
    Selection.Insert Shift:=xlToRight
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "=COUNTA(RC[1]:RC[16383])"
    Range("A1").Select
    Selection.Copy
    Range("A1:A5000").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    For KIKE = 1 To 5000
    a = a + 1
    If Range("A" & a).Value = 0 Then
    Rows(a).Select
    Selection.EntireRow.Hidden = True
    End If
    Next KIKE
       Columns("A:A").Select
    Selection.Delete Shift:=xlToLeft
    Range("A1").Select


End Sub
También te digo que la tabla tiene como máximo 200 filas y 70 columnas, nunca he pasado de esas cifras.
Muchas gracias por tu ayuda.
Trate de correr tu macro y no pude porque depende de otros complementos. EN fin la quería correr deteniendo el proceso para ver donde se demora, o que ocasiana el hacer calcular mucho tiempo a excel, te recomiendo hacer lo que te digo. Detén el proceso en varios puntos y mira donde esta el problema del tiempo.
Tu maquina no es una i7, pero una i3 es mejor que la máquina que tengo, y si la mía se demoro 20 segundos la tuya no debería demorarse en la parte de mi proceso, por eso quería verificar que estaba pasando.
No me gusta ser tan pesado, pero... no tengo mucho idea en esto, ¿cómo detengo el proceso?
Si ves que no podemos, sera mejor dejarlo.
No te preocupes agradezco tu esfuerzo.
Tu dirás
Yo no tengo problema, para eso es la página, para poder ayudar en lo que se pueda.
Para detener el proceso le das un click en la parte izquierda de la pantalla del visual te debe salir un botón rojo en el lugar donde des el clic, ¿esto para que sirve? Sirve para que cuando corras la macro el proceso se detenga en cada puntoi rojo que tu le pones. Esto lo harías para que vayas viendo en que lugar se esta quedando la macro, es decir, cuando tu archivo se quede pensando, osea, calculando. Te das cuenta que ahí se esta quedando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas