Buscar objetos de tabla en la hoja activa para eliminar el filtro automático.
Necesito encontrar la única tabla (una hoja de trabajo solo tendrá una tabla) en la hoja de trabajo activa y encontrar la primera y última columna de esa tabla y eliminar el autofiltro de esas primeras y últimas columnas.
Actualmente estoy haciendo lo siguiente: El problema es que tengo que ingresar manualmente los valores de los campos ya que el nombre de la hoja y el nombre de la tabla cambiarán.
Private Sub Worksheet_Activate()
' Seleccionar celda central
ActiveSheet.Range("$A$1").Select
' Quitar autofiltro de la primera columna en la tabla
With Range("$A$2")
.AutoFilter Field:=1, VisibleDropDown:=False
End With
' Quitar autofiltro de la última columna en la tabla
With Range("$Q$2")
.AutoFilter Field:=17, VisibleDropDown:=False
End With
End Sub
davy.ai
Para automatizar el proceso de encontrar la tabla y sus primeras y últimas columnas, puedes utilizar la propiedad ListObjects en VBA. Aquí tienes una versión actualizada del código:
Este código utiliza la colección ListObjects para encontrar la primera tabla en la hoja activa. Luego obtiene el índice de las primeras y últimas columnas en la tabla utilizando la colección ListColumns. Por último, elimina el autofiltro de esas columnas utilizando el método Range.AutoFilter.