Hola.. estoy utilizando una macro de macro Antonio para ocultar y mostrar columnas..
sin embargo no se como acotar para que solo busque entre las columnas B y AT, ya que tarma mucho tiempo para recorrer todas las columnas de la hoja.
saludos
Option ExplicitSub OcultarMostrarColumnasMA(Optional ACero As Boolean = True, _ Optional Vacia As Boolean = True, _ Optional FilasIgnoradas As Long = 0, _ Optional ColumnasIgnoradas As Long = 0) 'Definimos las variables Dim Filas, Columna, Columnas, FilaInicial Dim ColumnaInicial, FilasVacias, Celda, x, y 'Determinamos rango de filas FilaInicial = ActiveSheet.UsedRange.Row + FilasIgnoradas Filas = ActiveSheet.UsedRange.Rows.Count - FilasIgnoradas 'Determinamos rango de columnas ColumnaInicial = ActiveSheet.UsedRange.Column + ColumnasIgnoradas Columnas = ActiveSheet.UsedRange.Columns.Count - ColumnasIgnoradas 'Recorremos las columnas del rango For Columna = ColumnaInicial To ColumnaInicial + Columnas - 1 FilasVacias = 0 'Contamos las celdas vacias en el rango activo de la columna For Each Celda In ActiveSheet.Range(Cells(FilaInicial, Columna), _ Cells(FilaInicial + Filas - 1, Columna)) If (Vacia = True And Celda.Value = Empty) Or _ (ACero = True And Celda.Value = 0) Then FilasVacias = FilasVacias + 1 End If Next 'Mostramos/ocultamos la columna en función del número de celdas vacías If FilasVacias = Filas Then ActiveSheet.Columns(Columna).Hidden = True 'Ocultamos Else ActiveSheet.Columns(Columna).Hidden = False 'Mostramos End If Next End SubSub OcultarMostrarColumnas()OcultarMostrarColumnasMAEnd Sub
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Hola.. estoy utilizando una macro de macro Antonio para ocultar y mostrar columnas..
sin embargo no se como acotar para que solo busque entre las columnas B y AT, ya que tarma mucho tiempo para recorrer todas las columnas de la hoja.
saludos
Option ExplicitSub OcultarMostrarColumnasMA(Optional ACero As Boolean = True, _ Optional Vacia As Boolean = True, _ Optional FilasIgnoradas As Long = 0, _ Optional ColumnasIgnoradas As Long = 0) 'Definimos las variables Dim Filas, Columna, Columnas, FilaInicial Dim ColumnaInicial, FilasVacias, Celda, x, y 'Determinamos rango de filas FilaInicial = ActiveSheet.UsedRange.Row + FilasIgnoradas Filas = ActiveSheet.UsedRange.Rows.Count - FilasIgnoradas 'Determinamos rango de columnas ColumnaInicial = ActiveSheet.UsedRange.Column + ColumnasIgnoradas Columnas = ActiveSheet.UsedRange.Columns.Count - ColumnasIgnoradas 'Recorremos las columnas del rango For Columna = ColumnaInicial To ColumnaInicial + Columnas - 1 FilasVacias = 0 'Contamos las celdas vacias en el rango activo de la columna For Each Celda In ActiveSheet.Range(Cells(FilaInicial, Columna), _ Cells(FilaInicial + Filas - 1, Columna)) If (Vacia = True And Celda.Value = Empty) Or _ (ACero = True And Celda.Value = 0) Then FilasVacias = FilasVacias + 1 End If Next 'Mostramos/ocultamos la columna en función del número de celdas vacías If FilasVacias = Filas Then ActiveSheet.Columns(Columna).Hidden = True 'Ocultamos Else ActiveSheet.Columns(Columna).Hidden = False 'Mostramos End If Next End SubSub OcultarMostrarColumnas()OcultarMostrarColumnasMAEnd Sub