Macro para ocultar filas en cero

Tengo una tabla dinámica con muchos valores, necesito ocultar una serie de filas cuyo valor sea mayor o menor a 1, son 3 columnas comenzando en la celda "D8" y las 3 deben estar en este rango para ocultarse, aunado a esto, si las 3 columnas tienen los rangos para ser ocultas, solo se oculten si la columna G esta vacía ejemplo:

D E F G
5 0 10 NO SE OCULTA
0 0 0 A NO SE OCULTA
0.0012 0 -0.00054 SI SE OCULTA

La siguiente macro la dio como respuesta un experto en otra pregunta, pero solo es para valores en cero, y aunque en mi hoja de excel redondeados me aparecen ceros la realidad es que son valores muy pequeños como: 0.000000012, por lo que esta macro no las oculta.

Sub oculta()
Application.ScreenUpdating = False
Range("d8").Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell = 0 And ActiveCell.Offset(0, 1) = 0 And ActiveCell.Offset(0, 2) = 0 Then
ActiveCell.Select
Selection.EntireRow.Hidden = True
End If
ActiveCell.Offset(1, 0).Select
Loop
Application.ScreenUpdating = True
End Sub

1 respuesta

Respuesta
1

Aclarame el rango es mayor a 1 y menor de menos 1.

los rangos para ocultar las filas son menor a uno y mayor a menos uno, lo que quiero es que se oculten los números pequeños ya sean negativos o positivos (en este caso el rango de +-1 es suficiente, para considerar solo los números grandes que afectan mi archivo), espero haberme explicado

y gracias por tu atención

HIce algunas modificaciones al código anterior quedando:

Sub Oculta()
Application.ScreenUpdating = False
Range("D8").Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell < 1 And ActiveCell > -1 And ActiveCell.Offset(0, 1) < 1 And ActiveCell.Offset(0, 1) > -1 And ActiveCell.Offset(0, 2) < 1 And ActiveCell.Offset(0, 2) > -1 Then
ActiveCell.EntireRow.Hidden = True
End If
ActiveCell.Offset(1, 0).Select
Loop
Application.ScreenUpdating = True
End Sub

Este código oculta las Filas en donde las tres celdas tengan valores entre -1 y 1.

Espero te sirva, me comentas. Feliz dia.

Juan Carlos

Estupendo!!!! Juan

si fueras tan amable de ayudarme con la ultima condición, si la columna k esta vacía, ocultarla tal y como lo hiciste, pero si la columna k tiene algún dato (cualquiera, sea letra o numero), entonces que no se oculte,

gracias.

Reemplaza por esta linea:

If ActiveCell < 1 And ActiveCell > -1 And ActiveCell.Offset(0, 1) < 1 And ActiveCell.Offset(0, 1) > -1 And ActiveCell.Offset(0, 2) < 1 And ActiveCell.Offset(0, 2) > -1 And IsEmpty(ActiveCell.Offset(0, 7)) Then

Feliz dia

Juan Carlos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas