Ajustar alto de fila en celdas combinadas por columnas

Mi problema esta en ajustar el alto de fila de las celdas combinadas en las columnas B, C y D al contenido de las mismas, existe alguna orden en VBA para poder hacerlo automaticamente ya que el numero de filas a veces pasa de 100.

Adjunto "pantallazo" de la Hoja

De antemano ¡Gracias! Y perdón por las molestias

1

1 respuesta

Respuesta
1

Descarga el ejemplo que tengo en mi blog, en la entrada de Febrero (Autoajuste de filas, dejo el link a continuación).

El código de la hoja BASE ART (0) te debiera servir. Probalo y luego comenta. Si no te resulta debieras enviarme tu hoja para ver qué otras particularidades pueda tener.

Sdos.

Elsa

https://elsamatilde.blogspot.com/2018/02/autoajuste-de-filas.html 

El ejemplo que te sugiero autoajusta automáticamente a medida que vayas llenando las celdas combinadas.

Comenta si tu necesidad es ajustar celdas que ya fueron rellenadas como en la imagen y en ese caso te enviaré otro código.

Sdos!

¡Gracias!

Tu Blog es Excelente, ya lo tengo en FAVORITOS,

Tengo que verlo más detenidamente pero quería agradecerte tu pronta respuesta.

Si que necesito ajustar la altura en celdas que ya fueron rellenadas...

Si que necesito ajustar la altura al contenido en celdas que ya han sido rellenadas..., que la altura corresponda más o menos al numero de renglones...

Adjunto como me gustaría que apareciese... (esto lo he hecho yo a mano)...

Gracias y Saludos

Ingresá al Editor de macros (con ALT + F11)

Insertá un módulo y allí copiá lo siguiente:

Sub ajusteAltoFila()
'x Elsamatilde
'se recorre la col A desde fila 2 hasta fin de rango
    [B2].Select
'alto normal de la fila para Calibri 10
    alto = 12.75
While ActiveCell <> ""
    'ancho de columnas combinadas
    fily = ActiveCell.Row
    anchocol = Range("B" & fily).ColumnWidth + Range("C" & fily).ColumnWidth + Range("D" & fily).ColumnWidth
'no se observan saltos en la muestra
'si se trata de 1 sola fila
    anchotexto = Len(ActiveCell.Text)
    If anchotexto <= anchocol Then
        ActiveCell.RowHeight = 12.75
        GoTo sigo
    End If
'se calcula cuántas filas se necesitan
    dif = (anchotexto - anchocol) / anchocol
    If Round(dif) < 2 And anchotexto > anchocol Then
        dify = 2
    ElseIf dif > Int(dif) Then
        dify = Round(dif) + 1
    Else
        dify = Int(dif)
    End If
'alto total = alto * cant.filas
    cantfilas = alto * dify
'se asigna el alto obtenido
    With Range("B" & fily)
        .RowHeight = cantfilas
        .WrapText = True
        .HorizontalAlignment = xlLeft
    End With
sigo:
ActiveCell.Offset(1, 0).Select
Wend
End Sub

Podés ejecutarla desde el mismo Editor o regresar a la hoja y desde menú Desarrollador, Macros.  Podés leer más sobre cómo ejecutar macros  desde la sección Macros de mi sitio.

Estoy considerando un alto mínimo de 12,75 que va bien con Calibri 10... pero si tu fuente es mayor podrías reemplazar ese valor por 15 en el código.

Sdos.

Elsa

Hola Elsa

No me ha funcionado bien..., reduce el tamaño pero no se ajusta la altura de la fila

Al nº de renglones, queda texto oculto...

Te envío imagen del resultado.. igual me he equivocado en algo.

Gracias y perdona las molestias.

Saludos,

Victoria

Tenias que controlar el tamaño de tu fuente, para la que te indiqué el tamaño 12,75 va bien.

¿Y en qué te habrás equivocado?

Mejor enviame un libro con la hoja y la macro incluida. Mis correos aparecen en sitio que dejo al pie.

Sdos.

Elsa

Muchas Gracias, Elsa

Te había puesto lo de la equivocación porque por un momento al escribirte, dude de si había puesto bien lo del tamaño de la fuente (la cambie varias veces)...

Ahora te mando a tu correo el Libro con la macro.

Saludos,

Victoria

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas