Passo a passo:
-
Em sua pasta de trabalho, pressione Alt - F11 para abrir o Editor do Visual Basic (VBE)
-
Clique em Inserir > Módulo do menu e cole o seguinte na janela de código grande
Option Explicit Sub copyRow() Dim ws As Worksheet Dim lRow As Long ' define which worksheet to work on, i.e. replace Sheet1 with the name of your sheet Set ws = ActiveWorkbook.Sheets("Sheet1") ' determine the last row with content in column A and add one lRow = ws.Cells(Rows.Count, "A").End(xlUp).Row + 1 ' combine G7 and G8 and copy into column A, next empty row ws.Range("A" & lRow) = ws.[G7] & " " & ws.[G8] ' copy the other cells into their ranges ws.Range("C6:F6").Copy ws.Range("B" & lRow) ws.Range("C7:F7").Copy ws.Range("F" & lRow) ws.Range("C8:F8").Copy ws.Range("J" & lRow) ws.Range("C9:F9").Copy ws.Range("N" & lRow) ws.Range("C10:F10").Copy ws.Range("R" & lRow) ws.Range("C11:F11").Copy ws.Range("V" & lRow) ws.Range("C12:F12").Copy ws.Range("Z" & lRow) ws.Range("G6").Copy ws.Range("AD" & lRow) ws.[A1].Select End Sub
-
Feche o VBE
-
Na sua planilha, insira um botão ou uma forma. Clique com o botão direito do mouse na forma e selecione "Atribuir macro". Selecione a macro chamada "copyRow"
-
Na coluna A, coloque algum texto em uma célula para marcar o início da sua tabela de dados. Em seguida, clique no botão e os valores atuais da tabela e os intervalos nas linhas de 6 a 12 serão copiados para a próxima linha vazia.
Este cenário baseia-se no pressuposto de que cada nova linha de dados terá algum valor em G7 e G8, portanto, cada linha na tabela abaixo terá um valor na coluna A.