Vou testar aqui ; para ver qual ira satisfazer o que preciso.
Que é:
Copiar A2:BH30 e colar de maneira que a colagem fique com as mesmas alturas de linha da area copiada , por exemplo :
altura da linha 1 copiada =53 altura da linha 1 colada =53
altura da linha 2 copiada =33 altura da linha 2 colada =33
altura da linha de 3 a 20 copiada =43,5 altura da linha 3 a 20 colada =43,5
Se é isso, não é difícil cara. É só adaptar meu código.
Na declaração da variável alturaLinha, mude ela pra um array do tipo double:
Dim alturaLinha() as Double
Depois, quando for copiar as informações, faça um loop nas linhas do seu range:
Public Sub CopiaColaAlturaLinha()
Dim alturaLinha() as Double
Dim i as Integer
Dim myRng as Range
'DEFINE O RANGE DAS INFORMAÇÕES
set myRng = range("sua área a ser copiada")
'REDIMENSIONA O ARRAY COM O NÚMERO DE LINHAS
redim alturalinha(myRng.rows.count - 1) as double
'COLOCA AS ALTURAS DE LINHAS NAS POSIÇÕES DO ARRAY
For i = 0 to (myRng.Rows.Count - 1) step 1
alturaLinha(i) = myRng.Rows(i+1).RowHeight
Next i
'COLOQUE O CÓDIGO DE COLAGEM AQUI
'DEFINA O myRng COMO A NOVA ÁREA ONDE OS DADOS FORAM COLADOS
set myRng = Range("PRIMEIRA CÉLULA DA ÁREA COLADA").CurrentRegion
'MUDA AS ALTURAS DAS LINHAS COLADAS PARA AS QUE ESTÃO NO ARRAY
For i = 0 to (myRng.Rows.Count - 1) step 1
myRng.Rows(i+1).RowHeight = alturaLinha(i)
Next i
End Sub
Pronto. Não testei mas acredito que funcione. Avise.
Abraços.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 14/05/2012 6:11 am