Bloquear ancho de columna EXCEL

Resuelto
Hola,

Me gustaría saber si es posible bloquear el ancho de una columna.

Te explico:

Tengo un libro de Excel con diferentes pestañas y tablas en cada pestaña. En estas pestañas, los usuarios ingresan sus datos en las tablas.

Luego, yo inicio una actualización con un botón de macro en Excel que selecciona las tablas que he solicitado y las muestra una debajo de la otra en una pestaña especial. ¡Las tablas tienen el mismo formato!

Así que me gustaría definir el ancho de las columnas (diferente para cada columna) y que se mantengan bloqueadas de forma permanente. Para que en cada actualización no tenga que volver a escribir todos los anchos de columnas.

Espero haber sido claro. ¡Para más información, no dudes en preguntar!

Gracias de antemano. ;)

Configuración: Windows XP / Internet Explorer 6.0

--
"Pero, ¿cómo hacerlo,
Cómo decírselo,
Cómo hacerlo ver,
Mi planeta,
Artificial..."

-M-

1 respuesta

  1. Colaborador
    Hola,

    O proteges la hoja, o redefinies los anchos de las columnas en tu macro.

    eric
    -1
    1. No soy muy bueno en macros.
      ¿Podrías darme un pequeño ejemplo?

      Gracias de antemano.
      0
    2. Colaborador
      Re,

      ejemplo:
      Sub anchoColumnas() Dim ancho As Variant, col As Long ancho = Array(15, 25, 8) ' ancho de las columnas en una tabla For col = 2 To 4 ' a partir de la columna 2 Columns(col).ColumnWidth = ancho(col - 2) Next col End Sub

      eric
      0
    3. No parece que funcione, me gustaría definir el ancho de cada columna si es posible.

      Aquí está mi programa, ¿dónde puedo insertar el suyo?

      Opción Explícita
      Público Wks Como Hoja de Trabajo
      Constante Nombre = "Análisis Sinóptico del Proceso"

      Sub Pública CopieTB()
      Dim Lig Como Long, NbTB Como Integer, Orden Como Integer
      Dim Rango Como Rango, cel Como Rango
      Aplicación.DisplayAlerts = Falso
      Aplicación.ScreenUpdating = Falso
      Hojas(Nombre).Eliminar
      Establecer Wks = Hojas.Agregar
      Wks.Mover Después:=Hojas("sinóptico")
      Wks.Nombre = Nombre
      Con Hojas("sinóptico")
      Establecer Rango = .Rango("B19:B" & .Celdas(.Filas.Count, 2).Fin(xlUp).Fila)
      'Cuenta el número de TB a copiar
      Para Cada cel En Rango
      Si cel <> "" Entonces NbTB = NbTB + 1
      Siguiente cel
      Si NbTB = 0 Entonces Salir Sub 'no se encontró selecciónµ
      Para Lig = 1 Hasta NbTB
      Para Cada cel En Rango
      Si cel = Lig Entonces
      CopieUnTB cel
      Fin Si
      Siguiente cel
      Siguiente Lig
      Fin Con
      Wks.Select
      Establecer Wks = Nada
      Aplicación.DisplayAlerts = Verdadero
      Fin Sub

      Sub CopieUnTB(cel Como Rango)
      Dim TB, LigSiguiente Como Long
      TB = Dividir(cel.Offset(0, 1), "/")
      Con Hojas(Trim(TB(0)))
      LigSiguiente = Wks.Rango("A1").CeldasEspeciales(xlCellTypeLastCell).Fila + 1
      .Rango("A10:" & .Rango("A1").CeldasEspeciales(xlCellTypeLastCell).Dirección).Copiar Wks.Rango("A" & LigSiguiente)
      Fin Con
      End Sub

      Gracias de Antemano
      0
    4. Colaborador
      dónde puedo insertar el tuyo
      más bien al final del procedimiento que llamas
      0
    5. ¿Y a qué corresponden los números de su código?
      0