Notifications
Clear all

Altoajuste da linha com céluas mescladas.

4 Posts
1 Usuários
0 Reactions
2,123 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde a todos!

Alguémpode ajudar?

Formatei minha planilha com o alinhamento "Justificar", "Superior" com "Quebra automática de Texto" na Plan1 e tentei retornar o texto na Plan2 com a mesma formatação.
Só que consigo apenas selecionar a coluna e fazer o autoajuste da altura da linha se as céluas NÃO estiverem mescladas.
Gostaria de saber como fazer Autoajuste da altura da linha com células mescladas.
Segue anexo como exemplo.

Muito obrigado!

Silvio.

 
Postado : 19/04/2013 11:24 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde Sllvio

No link abaixo vc encontra 2 códigos VBA que podemt e ajudar:

http://info.abril.com.br/forum/viewtopic.php?t=2763

Um abraço.

 
Postado : 19/04/2013 11:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Patropi!

Usei os códigos abaixo indicados por você, todavia só funcionou o segundo (Plan2) quando dou um clique nas células mescladas.
O primeiro código (Plan3) só funciona quando dou 02 cliques nas células mescladas e depois clico fora, e ainda assim a linha fica muito larga (ver anexo).

Tem como associar o segundo código a uma botão de comando para autoajustar todas as linhas que estiverem mescladas?

Private Sub Worksheet_Change(ByVal Target As Range)
'Considerando que cada linha comporta 8 caracteres.
MaxLen = 8
'Determinar o número de caracteres expressos na célula
ActualLen = Len(Target)
'Determinar a relação entre o número de caracteres presentes e número máximo
Factor = ActualLen / MaxLen
'Ajusta a altura da linha Factor for maior que 1 unidade, em múltiplos da altura padrão
If Factor > 1 Then Rows(Target.Row).RowHeight = ActiveSheet.StandardHeight * Int(Factor)
End Sub

-------------------------------------------------------------------------------------------------------------------------

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim NewRwHt As Single
Dim cWdth As Single, MrgeWdth As Single
Dim c As Range, cc As Range
Dim ma As Range

With Target
If .MergeCells And .WrapText Then
Set c = Target.Cells(1, 1)
cWdth = c.ColumnWidth
Set ma = c.MergeArea
For Each cc In ma.Cells
    MrgeWdth = MrgeWdth + cc.ColumnWidth
    
Next
Application.ScreenUpdating = False
    On Error Resume Next
    ma.MergeCells = False
    c.ColumnWidth = MrgeWdth
    c.EntireRow.AutoFit
    NewRwHt = c.RowHeight
    c.ColumnWidth = cWdth
    ma.MergeCells = True
    ma.RowHeight = NewRwHt
    cWdth = 0: MrgeWdth = 0
    On Error GoTo 0
    Application.ScreenUpdating = True
End If
End With
End Sub 

Um abraço e obrigado mais uma vez.

Silvio.

 
Postado : 22/04/2013 6:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde Patropi!

Desculpe a insistência. Gostaria de saber se é possível usar o segundo código Private Sub acima e aplicá-lo a todas as linhas que estiverem com células mescladas na minha planilha e não só à célula ativa (selecionada) e como associar o código Private Sub () a um botão de comando.
Até agora só consegui associar comandos Sub ().

Muito obrigado.

Silvio.

 
Postado : 30/04/2013 10:41 am