Alto de fila II

Otra vez con dudas... Te comento, en una consulta anterior, me facilitaste la siguiente macro:
Sub formato()
Dim acolb As Double, acolc As Double, acold As Double, acole As Double
Application.ScreenUpdating = False
If Sheets("Registre").Visible = True Then
acolb = Columns("B:B").ColumnWidth
acolc = Columns("C:C").ColumnWidth
acold = Columns("D:D").ColumnWidth
acole = Columns("E:E").ColumnWidth
Columns("A:A").ColumnWidth = acolb + acolc + acold + acole
Rows("12:12"). EntireRow. AutoFit
Rows("14:14"). EntireRow. AutoFit
Rows("16:16"). EntireRow. AutoFit
Rows("24:24"). EntireRow. AutoFit
Rows("30:30"). EntireRow. AutoFit
Columns("A:A").EntireColumn.Hidden = True
End If
Application.ScreenUpdating = True
End Sub
La macro anterior ajusta el alto de fila automáticamente en celdas combinadas.
La duda que me ha surgido es poder conseguir ajustar alto de fila cuando tengo predeterminado un alto de fila de 22.75 pts, ya que por "defecto" siempre toma como alto de fila 12.75.
Es posible, a partir de la macro anterior, alguna modificación para que ajuste alto de fila en celdas combinadas partiendo, por ejemplo, de un alto de 22.75, ¿y no 12.75 pts?

1 respuesta

Respuesta
1
Bueno dejame probar como va la macro y considerando lo que necesites. Favor de no finalizar hasta que el tema este finiquitado del todo.
OK OK Christian... y gracias!
Bueno para avisarte que hace un momento de enviado la información a tu correo. Hemos tenido que hacer muchas cosas en el código.
Hemos tenido que cambiar el evento Selection_Change por Change, el cual lo vi como el más adecuado.
Otra cosa que también he tenido que implementar es que solo quiero que Change funcione en una celda o rango o celdas particulares, más no en toda la hoja de calculo. En el ejemplo que te he enviado el rango en cuestión de llama "rangobc", la cual ha sido asignada un nombre.
La macro funciona y esta probada previamente antes de responderte. El único detalle que faltaría es agregar una linea de código que te permita alinear el texto, centrado y a la izquierda, cosa que estoy seguro que tu puedes hacerlo. Lineas abajo el código propuesto.
No olvides de finalizar y puntuar la respuesta al final de esta página.
Saludos
Christian
************
Private Sub Worksheet_Change(ByVal Target As Range)
Dim acolb As Double, acolc As Double, n As Double
If Intersect(Range("rangobc"), Target) Is Nothing Then
Exit Sub
Else
    If Target Is Nothing Then
        Target.EntireRow.AutoFit
    Else
        acolb = Columns("B:B").ColumnWidth
        acolc = Columns("C:C").ColumnWidth
        Columns("A:A").ColumnWidth = acolb + acolc
        Target.EntireRow.AutoFit
        n = (Target.EntireRow.Height) / 12.75
        Target.RowHeight = n * 22.75
    End If
End If
    Columns("A:A").EntireColumn.Hidden = True
End Sub
Muchas gracias Christian y perdona la demora en finalizar, ya que he estado adaptando el código al archivo que estoy manejando, y que también utilizaré para otros archivos..
Una vez más, gracias!
Saludos y hasta la próxima!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas