Boa tarde a todos!
Fiz uma macro para automatizar a criação e o envio de uma lista para separação de equipamentos (arquivo em anexo para melhor visualização).
Tenho 02 abas (ESTOQUE / LISTA), na primeira preenchemos nomes e quantidades, ao apertar o command button a segunda aba é alimentada, cria-se um arquivo pdf e abre uma nova janela de email para envio da lista já com os endereços cadastrados previamente.
O que pega é que, no código do Loop2 (meus conhecimentos de VBA não me permitiram montar um código com estrutura mais limpa e sofisticada do que esse ainda) a linha de comando para identificar a última linha (variável Xs) não está reconhecendo os últimos itens adicionados, voltando sempre para a célula C5, conseguem me ajudar com esse entrave por favor? (caso tenham sugestões para melhoria do código, agradeço demais também - uma outra dúvida, é como eu posso utilizar todos objetos e variáveis que defini para as subs da mesma planilha), segue trecho do código:
Sub Loop2()
Application.ScreenUpdating = False
Dim MO1, MO2 As Object
Dim K, X, Xs, Xy, Y, Z As Range
Dim linha As Long
Set MO1 = Planilha3
Set MO2 = Planilha2
Set X = MO1.Range("C6")
Set Y = MO1.Range("C2:D3")
Set Z = MO2.Range("C2:D3")
Set Xs = MO2.Range("C1048576").End(xlUp)
Set Xy = MO1.Range("D1048576").End(xlUp)
linha = MO1.Range("D1048576").End(xlUp).Row
With MO1
MO1.Activate
Do While ActiveCell.Value <> "" And ActiveCell.Value <> "QTDE"
MO1.Activate
ActiveCell.EntireRow.Copy
MO2.Activate
Xs.Offset(1, 0).Select
ActiveCell.EntireRow.Select
Selection.PasteSpecial (xlPasteValues)
MO1.Activate
ActiveCell.Offset(-1, 0).Select
Loop
End With
Application.ScreenUpdating = True
End Sub
Postado : 16/09/2022 12:13 pm