Como criar uma macro que transferirá dados para outra planilha, começando em uma célula específica e (em chamadas subsequentes), para baixo?

0

Eu tenho uma célula DATA INPUT (célula B3) em SHEET1. Eu quero fazer um código de macro que quando o botão de macro é pressionado, os dados da célula B3 de SHEET1 serão copiados para a célula C5 de SHEET2 e também a exclusão dos dados inseridos na célula B3 de SHEET1. E quando eu insiro outros dados e pressiono o botão novamente, os dados serão copiados para a próxima linha de SHEET2, neste caso, a célula C6. Então, a célula C7, C8 e assim por diante.

Eu tentei criar um código para isso, mas não consigo iniciar na célula C5. Sempre começa da célula C2 e depois para baixo. Eu tentei pesquisar códigos como "Startrow", mas não consigo fazer isso funcionar.

Por favor, veja o código abaixo:

Sub Button1_Click()
Response = MsgBox("Are you sure?", vbYesNo)
If Response = vbNo Then Exit Sub
Dim nextrow As Long
nextrow = Worksheets("Sheet2").Cells(Rows.Count, "C").End(xlUp).Row + 1
Worksheets("Sheet1").Range("B3").Copy Worksheets("Sheet2").Range("C" & nextrow)
Worksheets("Sheet1").Range("B3").ClearContents
End Sub
    
por Fritze Ong 22.08.2017 / 11:56

1 resposta

0

Bem, se você quiser que os dados sejam copiados para a Linha 5 na primeira vez em que a macro for executada, você poderia fazer isso:

Sub Button1_Click()
    Response = MsgBox("Are you sure?", vbYesNo)
    If Response = vbNo Then Exit Sub
    Dim nextrow As Long
    nextrow = Worksheets("Sheet2").Cells(Rows.Count, "C").End(xlUp).Row + 1
→→  If nextrow < 5 Then nextrow = 5                                                     ←←
    Worksheets("Sheet1").Range("B3").Copy Worksheets("Sheet2").Range("C" & nextrow)
    Worksheets("Sheet1").Range("B3").ClearContents
End Sub
    
por 23.08.2017 / 05:56