- 14 Abr 2015 às 16:05
#138
Boa tarde
Estou trabalhando na planilha em anexo onde tenho diversas informações. Criei o código abaixo para extrair as informações da Plan2 (que é a planilha base) para a Plan1 (onde será gerado o relatório). Porém ao executar o código apenas consigo copiar os dados se na coluna F estiverem na mesma ordem (algo que ao fazer o relatório semanalmente não acontecerá), caso a ordem da Plan1 não seja a mesma que a Plan2 o código para.
Gostaria da ajuda dos colegas para que mesmo que a ordem da coluna F das duas folhas não seja a mesma a Plan1 seja preenchida.
Abaixo o código que estou usando:
Sub teste()
ultimacelula = Plan2.Cells(Rows.Count, 6).End(xlUp).Row
lin = 2
For i = 2 To ultimacelula
If Plan2.Cells(i, 6) = Plan1.Cells(lin, 6) Then
Plan1.Cells(lin, 2) = Plan2.Cells(i, 2)
Plan1.Cells(lin, 3) = Plan2.Cells(i, 3)
Plan1.Cells(lin, 7) = Plan2.Cells(i, 7)
Plan1.Cells(lin, 8) = Plan2.Cells(i, 8)
Plan1.Cells(lin, 9) = Plan2.Cells(i, 9)
lin = lin + 1
Else
MsgBox "Cota não encontrada " & Plan1.Cells(lin, 6).Value
lin = lin + 1
End If
Next
End Sub
A linha amarela na Plan1 não possui a cota na Plan2. A linha em azul na Plan1 a cota existe mas o código não busca as informações.
Estou trabalhando na planilha em anexo onde tenho diversas informações. Criei o código abaixo para extrair as informações da Plan2 (que é a planilha base) para a Plan1 (onde será gerado o relatório). Porém ao executar o código apenas consigo copiar os dados se na coluna F estiverem na mesma ordem (algo que ao fazer o relatório semanalmente não acontecerá), caso a ordem da Plan1 não seja a mesma que a Plan2 o código para.
Gostaria da ajuda dos colegas para que mesmo que a ordem da coluna F das duas folhas não seja a mesma a Plan1 seja preenchida.
Abaixo o código que estou usando:
Sub teste()
ultimacelula = Plan2.Cells(Rows.Count, 6).End(xlUp).Row
lin = 2
For i = 2 To ultimacelula
If Plan2.Cells(i, 6) = Plan1.Cells(lin, 6) Then
Plan1.Cells(lin, 2) = Plan2.Cells(i, 2)
Plan1.Cells(lin, 3) = Plan2.Cells(i, 3)
Plan1.Cells(lin, 7) = Plan2.Cells(i, 7)
Plan1.Cells(lin, 8) = Plan2.Cells(i, 8)
Plan1.Cells(lin, 9) = Plan2.Cells(i, 9)
lin = lin + 1
Else
MsgBox "Cota não encontrada " & Plan1.Cells(lin, 6).Value
lin = lin + 1
End If
Next
End Sub
A linha amarela na Plan1 não possui a cota na Plan2. A linha em azul na Plan1 a cota existe mas o código não busca as informações.
Você não está autorizado a ver ou baixar esse anexo.