Autoajustar columnas con macros y asignar un método abreviado que esté disponible en todo los archivos de Excel

Excel tiene muchas herramientas valiosas que nos hacen ser más eficientes en Excel, pero infortunadamente no existen métodos abreviados para acceder a todas. Una de ellas es Autoajustar ancho de columna.

Grabar macro y asignarle un método abreviado

Como lo mencioné anteriormente, la herramienta Autoajustar ancho de columna no tiene un método abreviado, por lo que nos daremos a la tarea de tenerla en una macro y asignarle un método abreviado, [Ctrl] + [M]. Haremos uso de la Grabadora de macro para obtener el código, además de asignarle un método abreviado, y para que esto sea más interesante, dejaremos la combinación disponible para todos los archivos.

Video tutorial

Tenemos una tabla de muestra donde vemos que el texto de las columnas es más grande que el ancho de las columnas.

Tabla de ejemplo en Excel

Figura 1. Tabla de ejemplo.

Para grabar la macro, nos vamos a Vista > Macros > Grabar macro. Primeramente asignamos el método abreviado [Ctrl] + [M] y guardamos la macro en el libro PERSONAL.

Grabar macro y asignarle un método abreviado

Figura 2. Grabar macro y asignarle un método abreviado.

Para ejecutar la herramienta Autoajustar, nos vamos a Inicio > Formato > Autoajustar ancho de columna. Una vez hecha la acción, detenemos la macro.

Autoajustar tamaño de columna en Excel

Figura 3. Autoajustar tamaño de columna en Excel.

Ahora cada vez que presionemos [Ctrl] + [M] se autoajustarán las columnas al ancho del texto.

Métodos abreviados en Excel

Figura 4. Método abreviado en Excel.

Código vba para asignar método abreviado a una macro

Mediante el método OnKey vamos a asignar un método abreviado a una macro previamente grabada. La macro grabada se llama AutoAjustar. Le hice unas adecuaciones para que detecte cuando se produzca algún error, por ejemplo que la hoja esté protegida.

Código de la macro AutoAjustar

Sub AutoAjustar()
'
Dim ErrorHandler As Error
'
On Error GoTo ErrorHandler
'
Selection.EntireColumn.AutoFit
'
Exit Sub
ErrorHandler:
MsgBox "Ha ocurrido un error: " & Err.Description & vbNewLine & vbNewLine & _
       "Procura que la hoja no esté protegida.", vbExclamation, AddIn
End Sub

Para que el método abreviado [Ctrl] + [M] esté siempre disponible usamos el siguiente código vba en un Módulo normal.

'---------------------------------------------------------------------------------------
' Module    : Módulo1
' Author    : MVP, Sergio Alejandro Campos
' Date      : 01/05/2016
' Purpose   : Métodos abreviados en Excel
'---------------------------------------------------------------------------------------

Sub Auto_Open()
Application.OnKey "^{m}", "AutoAjustar"
End Sub

Ahora usaremos Auto_Close para restaurar el método abreviado.

Sub Auto_Close()
Application.OnKey "^{m}"
End Sub

Descarga el ejemplo

Click aquí para descargar el ejemplo: Método abreviado en Excel.xlsm.

You may also like...

  • JoaoM

    Auto-ajustar ancho de columna(s) segun el largo del texto en determinada(s) celda(s).
    Siempre que posible evitar el .Select (seleccion de rango o celda)
    Sub AutoAjustar()
    Dim ErrorHandler As Error
    On Error GoTo ErrorHandler
    ‘S itienes la hoja protegida, DESprotege la hoja
    ActiveSheet.Unprotect Password:=”123″
    ‘evitamos el .Select y solo recorremos el rango buscando el texto que mas largo encuentre en celda de columna para dar ancho justo a las columnas
    Range(“A1:H35″).EntireColumn.AutoFit ‘Puedes determinar el rango a tu necesidad
    ‘protege la hoja
    ‘Vuelves a proteger la hoja
    ActiveSheet.Protect Password:=”123”
    Exit Sub
    ‘Si encuentra la hoja protegida
    ErrorHandler:
    ‘Si la hoja esta protegida
    MsgBox “Ha ocurrido un error: ” & Err.Description & vbNewLine & vbNewLine & _
    “Procura que la hoja no esté protegida.”, vbExclamation, AddIn
    End Sub

    La DESproteccion y proteccion es si por casualidad usas formulario para la insercion de datos.
    Si no usas proteccion en las hojas, elimina esas 2 lineas

    • Gracias por la nota, aunque para ese caso si hay necesitdad de usar Selection, ya que el rango no es siempre el mismo.

      • JoaoM

        Cada cual coloca EN SU MACRO, el rango a su necesidad en ese libro o plantilla

  • Ens Ubaldo

    Gracias…por estos aportes..muchas gracias

RECIBE CONTENIDO EXCLUSIVO

Tips, trucos, videos para convertirte en un EXPERTO EN EXCEL y llegar al éxito. Suscríbete y recibe el mejor contenido en tu correo.