About Me

A minha foto
JRod - PORTUGAL
Microsoft [MVP] - Excel (10º ano consecutivo)
Ver o meu perfil completo
Com tecnologia do Blogger.

Seguidores

Estatisticas

Free Blog Counter

eXTReMe Tracker
2007-02-10

Se pretendermos copiar dados de uma folha para outra, de modo sequencial e partindo do princípio de que esses dados não se encontram sempre, na sua origem, nas mesmas células, mas mantendo-se na mesma ordem por coluna, como no exemplo:
 
Folha1 (1º momento):
 
 
Folha2 (1º momento):
 
 
Folha1 (2º momento):
 
Folha2 (2º momento):
 
 
Podemos então, para conseguir este resultado:
 
 1º - Definir o Range e atribuir-lhe um nome (no exemplo: "Vendas"):
 
 
2º - Executar o seguinte Código num módulo VBE:
 
 Sub TransferCells()

    Const SOURCESHEETNAME As String = "Sheet1"
    Const DESTSHEETNAME As String = "Sheet2"
    Dim copyRange As Range
    Dim cell As Range
    Dim destinationRange As Range

    Worksheets(SOURCESHEETNAME).Select

    Set destinationRange = Worksheets(DESTSHEETNAME).Range("A1")

    For Each cell In Range("Vendas").Resize(, 1)
        If cell.Value = "Vendas" Then
            If copyRange Is Nothing Then
                Range(cell, cell.Offset(0, 1)).Copy Destination:= _
                                                    Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
            End If
        End If
    Next cell

End Sub