Copie dados de uma planilha do Excel para outra (complexa) usando o VBA com base no nome da coluna
Sou muito novo no VBA e, depois de 5 horas assistindo a vídeos e pesquisando no Google, acho que isso é demais ... qualquer ajuda é muito apreciada.
Então, eu tenho 2 planilhas do Excel: Sheet1 e Sheet2. Eu tenho uma coluna S / N na Planilha1 e, se a coluna = "S", desejo copiar todos os dados dessa linha que possui um nome de coluna correspondente na Planilha2.
Sheet1
Product Price SalesPerson Date Commission Y/N
A $25 John 1/9/15 $3 Y
B $20 John 1/12/15 $2 N
B $15 Brad 1/5/15 $1 Y
Sheet2
Price Product Date Salesperson
Portanto, sempre que Y / N = Y, copie os dados que correspondem à planilha2 e faça isso até que a plan1.col1 seja nula (em loop). O resultado seria este:
Sheet2
Price Product Date Salesperson
$25 A 1/9/15 John
$15 B 1/5/15 Brad
As colunas não estão em ordem e são numerosas demais para serem inseridas manualmente. Por último, mas não menos importante, a coluna S / N precisaria ser limpa após o término. Eu tentei alterar isso sem sorte:
Sub CopyHeaders()
Dim header As Range, headers As Range
Set headers = Worksheets("Sheet1").Range("A1:Z1")
For Each header In headers
If GetHeaderColumn(header.Value) > 0 Then
Range(header.Offset(1, 0), header.End(xlDown)).Copy Destination:=Worksheets("Sheet2").Cells(2, GetHeaderColumn(header.Value)).End(xlDown).Offset(1, 0)
End If
Next
End Sub
Function GetHeaderColumn(header As String) As Integer
Dim headers As Range
Set headers = Worksheets("Sheet2").Range("A1:Z1")
GetHeaderColumn = IIf(IsNumeric(Application.Match(header, headers, 0)), Application.Match(header, headers, 0), 0)
End Function
Isso foi projetado para fazer algo diferente do que estou tentando fazer e não acho que sou capaz de mudar isso para funcionar para mim. Como faço isso?