Ajuste del centro a lo largo de la selección con un valor de celda (Microsoft Excel)
A Jean le gusta usar la configuración «Centrar en toda la selección» en la pestaña Alineación del cuadro de diálogo Formato de celdas para centrar la información en las celdas no fusionadas. Sin embargo, se pregunta si hay alguna manera de que pueda usar el contenido de una celda para controlar en cuántas celdas se produce el centrado. Por ejemplo, si tiene el número 4 en la celda A1, entonces el centrado estaría en 4 celdas (B1: E1), pero si lo cambia a 5, entonces el centrado sería en 5 celdas (B1: F1).
La única forma de hacerlo es mediante el uso de una macro. Debido a que puede cambiar el valor en la celda A1, la macro debe ejecutarse siempre que realice un cambio en el libro de trabajo y luego determinar si ese cambio se realizó en la celda A1 o no. Si es así, puede hacer el ajuste a las celdas de la fila.
Private Sub Worksheet_Change(ByVal Target As Range) Dim sWidth As String Dim sStartCell As String Dim iWidth As Integer Dim r As Range Dim sTemp As String sWidth = "$A$1" sStartCell = "$B$1" If Target.Address = sWidth Then iWidth = Range(sWidth).Value If iWidth > 1 Then sTemp = Right(sStartCell, 1) sTemp = sTemp & ":" & sTemp Range(sTemp).HorizontalAlignment = xlGeneral Set r = Range(sStartCell) Set r = r.Resize(1, iWidth) r.HorizontalAlignment = xlCenterAcrossSelection End If End If End Sub
Tenga en cuenta que esta macro se coloca en la hoja de códigos de la hoja de trabajo que desea afectar. Siempre que se realiza un cambio en la hoja de trabajo, la macro se ejecuta automáticamente. Para que funcione para usted, debe cambiar las direcciones asignadas a las variables sWidth y sStartCell. sWidth se establece en la celda que contiene cuántas columnas desea centrar. sStartCell se establece en la primera celda a la izquierda del rango donde se producirá el centrado.
La macro toma lo que esté en su celda sWidth y lo coloca en la variable iWidth. Si este valor es mayor que 1, entonces tienen lugar los cambios de centrado. (No tiene sentido centrar una selección que tenga menos de 2 columnas de ancho). La alineación de todas las celdas es que la fila se vuelve a establecer en general, y luego se define un rango que es tan ancho como usted especificó, comenzando en la celda de sStartCell. Para este rango, la alineación se establece en xlCenterAcrossSelection para obtener los resultados deseados.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (4360) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.