En una hoja con varias tablas esta macro agrega las columnas necesarias para que todas ellas tengan el mismo número de columnas que la tabla más ancha.
Agregar columnas a varias tablas hasta la más ancha
Categoría
Descripción
Esta macro llamada ColumnasMaximas
recorre todas las tablas de una hoja de Excel y ajusta el número de columnas para que todas las tablas tengan el mismo número de columnas que la tabla más ancha. El proceso es el siguiente:
- Se define una variable que almacena el número máximo de columnas encontradas en las tablas de la hoja.
- Se recorren todas las tablas de la hoja y se verifica cuántas columnas tiene cada una.
- Se determina cuál es la tabla con el mayor número de columnas.
- Luego, se vuelven a recorrer todas las tablas y, si alguna tiene menos columnas que la tabla más ancha, se agregan columnas hasta que todas tengan el mismo número.
Código
Sub ColumnasMaximas()
‘ Se definen las variables
Dim tbl As ListObject
Dim Columnatabla As Integer
Dim MaxColumna As Integer
Dim nuevacol As Integer
‘ Se recorren todas las tablas de la hoja
For Each tbl In ActiveSheet.ListObjects
Columnatabla = tbl.ListColumns.Count ‘ Se guarda el número de columnas de la tabla
‘ Si el número de columnas de la tabla actual es mayor que el máximo de columnas, se actualiza MaxColumna
If Columnatabla > MaxColumna Then MaxColumna = Columnatabla
Next tbl
‘ En este punto, MaxColumna guarda el número de columnas de la tabla más ancha
‘ Se vuelven a recorrer todas las tablas
For Each tbl In ActiveSheet.ListObjects
If tbl.ListColumns.Count < MaxColumna Then
‘ Si el número de columnas de la tabla es menor que el máximo, se agregan las columnas necesarias
For nuevacol = tbl.ListColumns.Count To MaxColumna – 1
tbl.ListColumns.Add
Next nuevacol
End If
Next tbl
End Sub
Otras funciones de la categoría
- Ruta de la carpeta de archivos principal
- Buscar objetivo
- Leer, ordenar y seleccionar en la matriz
- E-mail hoja de trabajo individual
- Rellenar celdas vacías
- Actualizar enlaces
- Los controles activex se eliminan selectivamente
- Formato condicional basado en la hora del día.
- Copiar cada segunda celda
- Establecer y cambiar los nombres de área con la ayuda de una VBE-rutina