Keith tiene una hoja de trabajo que usa las columnas de la A a la H. Le gustaría poder ampliar cada columna en una cantidad proporcional. Por ejemplo, si selecciona las 8 columnas, sería genial si pudiera agarrar el borde derecho de la columna H y, mientras arrastra hacia la derecha, todas las columnas estarían espaciadas proporcionalmente. Se pregunta si hay alguna forma de hacer este tipo de ensanchamiento de columnas.

Para comprender mejor de qué está hablando Keith, tal vez sea necesario un ejemplo. La forma normal de ajustar el ancho de las columnas con el mouse es seleccionar las columnas y luego arrastrar un divisor entre los encabezados de las columnas hacia la derecha o hacia la izquierda. Digamos que el ancho de la columna A es 5, la columna B es 10 y la columna C es 15. Si selecciona A: C y arrastra el divisor en el lado derecho del encabezado de la columna C a 20, eso es un aumento del 33% para columna C. Idealmente, tanto la columna A como la B también se redimensionarían en un 33% (como Keith desea), pero, en cambio, ambas se establecen en un ancho de 20 para que coincida con la columna C.

Además, mantener presionada una tecla modificadora (Ctrl, Alt o Mayús) mientras arrastra el mouse no tiene ningún efecto; los anchos de columna siguen siendo todos iguales entre sí. Si intenta hacer clic con el botón derecho y arrastrar, no hace nada más que mostrar un menú contextual. Por lo tanto, de todas las pruebas que hemos podido hacer, no hay forma de ajustar proporcionalmente el ancho de las columnas en Excel que hayamos podido descubrir.

Quizás la forma más sencilla es utilizar una macro para ajustar el ancho de las columnas.

El siguiente es un buen ejemplo de tal enfoque.

Sub ProportionalWidth()

Dim C As Range     Dim sRaw As String     Dim sTemp As String     Dim P As Single

sRaw = InputBox("Increase width by how what % (0 to 100)?")

P = Val(sRaw)

If P >= 0 And P <= 100 Then         P = 1 + (P / 100)

sTemp = ""

For Each C In Selection.Columns             sTemp = sTemp & "Column " & ColumnLetter(C.Column)

sTemp = sTemp & ": " & C.ColumnWidth & " ==> "

C.ColumnWidth = C.ColumnWidth * P             sTemp = sTemp & C.ColumnWidth & vbCrLf         Next C         MsgBox sTemp     Else         MsgBox "Out of range; no adjustment made"

End If End Sub
Function ColumnLetter(Col As Long) As String     Dim Arr     Arr = Split(Cells(1, Col).Address(True, False), "$")

ColumnLetter = Arr(0)

End Function

En realidad, hay dos macros en este ejemplo. El primero (ProportionalWidth) cambia el ancho de las columnas que haya seleccionado. La segunda (ColumnLetter) se utiliza para convertir un número de columna numérico en letras de columna. Solo se usa para armar el informe (en sTemp) de los anchos antes y después de las columnas.

Cuando selecciona columnas y ejecuta la macro, le pregunta cuánto más anchas desea hacer esas columnas. Ingrese un número entre 0 y 100, haga clic en Aceptar y las columnas se ampliarán en ese porcentaje. Además, verá un cuadro de mensaje que muestra el ancho original de cada columna y el ancho ajustado.

Tenga en cuenta que esta macro solo amplía las columnas. Si quisiera usarlo también para hacer columnas proporcionalmente más estrechas, necesitaría modificarlo para, quizás, manejar valores negativos.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (13429) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.