Bom dia Galerinha,
Alguem poderia me ajudar, criei sua Macros, porem elas rodam lentamente, teria alguma forma de deixar elas mais simplificas, com menos linhas, como não entendo muito criei do jeito que sei:
A Sub Gravar copia os dados da coluna B e coluna F para a coluna K. Já a Sub Inserir_Inventario copia a coluna K e a coluna M para a aba Pasta de Transferencia na coluna A e B.
Sub gravar()
Dim linha, coluna, linhak, colunak
linha = 2
coluna = 2
linhak = 2
colunak = 11
Do While Cells(linha, coluna) <> ""
Cells(linha, coluna).Select
Selection.Copy
Do While Cells(linhak, colunak) <> ""
linhak = linhak + 1
Loop
Cells(linhak, colunak).Select
ActiveSheet.Paste
Application.CutCopyMode = False
linha = linha + 1
Loop
linha = 2
linhak = 2
coluna = 6
Do While Cells(linha, coluna) <> ""
Cells(linha, coluna).Select
Selection.Copy
Do While Cells(linhak, colunak) <> ""
linhak = linhak + 1
Loop
Cells(linhak, colunak).Select
ActiveSheet.Paste
Application.CutCopyMode = False
linha = linha + 1
Loop
'remover duplicados da coluna K'
Columns("K:K").Select
ActiveSheet.Range("K:k").RemoveDuplicates Columns:=1, Header:=xlNo
'mensagem de aviso se foi ou não copiados'
If linha = 2 Then
MsgBox "Não existe produto contado", vbInformation, "Inventário Kennedy"
Else
Application.CutCopyMode = False
MsgBox "Arquivos copiados com Sucesso", vbInformation, "Inventario Kennedy"
End If
End Sub
Sub Inserir_Inventario()
'
Dim linha, coluna, linhap, colunap
If MsgBox("Deseja Inserir o inventário?", vbYesNo, "Inventário Kennedy") = vbYes Then
linha = 2
coluna = 11
coluna2 = 13
linhap = 1
colunap = 1
colunap2 = 2
Do While Sheets("inventario").Cells(linha, coluna) <> ""
Sheets("inventario").Select
Cells(linha, coluna).Select
Selection.Copy
Do While Sheets("Pasta de Transferencia").Cells(linhap, colunap) <> ""
linhap = linhap + 1
Loop
Sheets("Pasta de Transferencia").Select
Cells(linhap, colunap).Select
ActiveSheet.Paste
linha = linha + 1
Loop
linha = 2
linhap = 1
colunap = 2
Do While Sheets("inventario").Cells(linha, coluna2) <> ""
Sheets("inventario").Select
Cells(linha, coluna2).Select
Selection.Copy
Do While Sheets("Pasta de Transferencia").Cells(linhap, colunap) <> ""
linhap = linhap + 1
Loop
Sheets("Pasta de Transferencia").Select
Cells(linhap, colunap).Select
' ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
linha = linha + 1
Loop
Exit Sub
Else
MsgBox ("Operação Cancelada.")
Exit Sub
End If
Application.CutCopyMode = False
End Sub
Postado : 29/05/2017 8:41 am