es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe alguna forma de recorrer en bucle las celdas visibles en una columna de una tabla (ListObject)?

En una tabla de Excel (ListObject), he comenzado a rastrear cientos de películas y su estado mientras las copio en disco para usarlas en Plex. La tabla no es nada especial; almacena cosas que esperarías como la carpeta de copia, la carpeta de medios de Plex, el nombre de la película, el año en que se lanzó, la carpeta de respaldo donde guardo una copia de los archivos en disco sin procesar, etc. Creé el libro después de haber hecho varias cientos de películas para facilitar el seguimiento. Como resultado de la inconsistencia en mis métodos antes de crear el libro, ahora tengo algo de limpieza que hacer en el libro. Quiero hacerlo usando VBA, ya que las correcciones manuales serían tediosas, propensas a errores y llevarían mucho tiempo. Tengo un algoritmo que creo que funcionará, pero depende de poder recorrer las celdas visibles en una columna de una tabla filtrada, la columna que usaré para determinar si necesito hacer alguna corrección en esa fila y, donde sea necesario, las columnas en las que deben realizarse las correcciones.

¡Cualquier orientación aquí sería apreciada!
Gracias

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en informática especializado en Excel, bucles, visible y ListObject, entiendo tu situación y estaré encantado de ayudarte. Para recorrer las celdas visibles en una columna de una tabla filtrada utilizando VBA, puedes utilizar el siguiente fragmento de código:

    Dim tbl As ListObject
    Dim rng As Range
    Set tbl = Sheets("Hoja1").ListObjects("Tabla1")
    Set rng = tbl.ListColumns("Estado").DataBodyRange.SpecialCells(xlCellTypeVisible)
    
    For Each cell In rng
        'Tu código va aquí
    Next cell
    

    En este ejemplo, “Hoja1” es el nombre de la hoja donde se encuentra tu tabla, “Tabla1” es el nombre de tu tabla y “Estado” es el nombre de la columna por la que deseas iterar. Puedes reemplazar estos valores con los nombres reales de tu hoja, tabla y columna correspondientemente.

    Puedes agregar tu algoritmo dentro del bucle y utilizar la variable cell para referirte a la celda actual en el bucle. Por ejemplo, puedes verificar si el valor de la celda coincide con tus criterios y realizar correcciones en otras celdas de la misma fila utilizando el método cell.Offset(filadesplazamiento, columnadesplazamiento). Los parámetros filadesplazamiento y columnadesplazamiento especifican el número de filas y columnas, respectivamente, a partir de la celda actual.

    Espero que esto te sea de ayuda y si tienes alguna pregunta o inquietud adicional, no dudes en preguntar.

Comments are closed.