Boa tarde,
Caro joseA, veja se o código comentado atende à sua solicitação.
Qualquer dúvida é só postar.
Sub Converter()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Vetor(17)
'Seleciona a planilha onde estão os dados a serem transferidos
Sheets("Original").Select
'Linha inicial da planilha de destino dos dados ("Convertidas")
j = 8
'Laço para percorrer toda a planilha de Origem e verificar o que
'deve ser transferido
For i = 1 To ActiveSheet.UsedRange.Rows.Count
'As linhas onde há dados a serem transferidos foram identificadas
'por ter um valor numérico na coluna "B" e diferente de "" (branco).
'Esta identificação foi feita a partir de análise de como os dados estão
'distribuídos na planilha de origem.
'Com base nisso nota-se que os demais dados estão distribuídos na mesma linha
'ou na linha abaixo sem seguir uma sequencia regular, por esse motivo usei um vetor
'e a função "Offset" para colocá-los em sequencia para a transferência.
If IsNumeric(Cells(i, "B").Value) And Cells(i, "B").Value <> "" Then
'Seleciona a célula que identifica o início dos dados
Cells(i, "B").Select
'Atribui os valores das células ao vetor com base na posição relativa à
'célula da coluna "B" selecionada.
Vetor(0) = ActiveCell.Value
Vetor(1) = ActiveCell.Offset(0, 1).Value
Vetor(2) = ActiveCell.Offset(1, 1).Value
Vetor(3) = ActiveCell.Offset(0, 6).Value
Vetor(4) = ActiveCell.Offset(1, 6).Value
Vetor(5) = ActiveCell.Offset(0, 11).Value
Vetor(6) = ActiveCell.Offset(0, 12).Value
Vetor(7) = ActiveCell.Offset(1, 12).Value
Vetor(8) = ActiveCell.Offset(0, 13).Value
Vetor(9) = ActiveCell.Offset(1, 13).Value
Vetor(10) = ActiveCell.Offset(0, 14).Value
Vetor(11) = ActiveCell.Offset(0, 17).Value
Vetor(12) = ActiveCell.Offset(0, 18).Value
Vetor(13) = ActiveCell.Offset(0, 19).Value
Vetor(14) = ActiveCell.Offset(0, 20).Value
Vetor(15) = ActiveCell.Offset(0, 21).Value
Vetor(16) = ActiveCell.Offset(0, 22).Value
Vetor(17) = ActiveCell.Offset(1, 22).Value
'Com os dados inseridos no vetor é só transferir para
'a planilha de destino.
'O "k + 2" se deve ao fato do vetor começar em 0 e a coluna
'começar "B" que equivale a 2.
For k = 0 To 17
Sheets("Convertida").Cells(j, k + 2).Value = Vetor(k)
Next
'Incrementa o número da linha
j = j + 1
End If
Next
End Sub
Abraço
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 12/11/2011 9:24 am