Notifications
Clear all

COLAR DADOS EM UMA LINHA VARIÁVEL USANDO MACRO

2 Posts
2 Usuários
0 Reactions
756 Visualizações
(@paulovfr)
Posts: 0
New Member
Topic starter
 

Olá pessoal do fórum, sou novo por aqui e gostaria de uma ajuda.
Não entendo muito (quase nada) de VBA, mas estou usando o recurso de gravar macro e encontrei um problema.
Tenho uma planilha do Excel e na aba EST uma tabela com dados de estoque (código, nome de produto, quantidade, marca, fornecedor, etc).
A macro que gravei filtra a tabela que mencionei acima de acordo com o valor inserido na célula L8 da aba ATP, por exemplo, se em L8 eu tiver digitado o valor 7, ele filtra a tabela da EST, coluna "Código", valor 7. O problema é que na mesma macro eu copio uma linha da aba ATP e quero colar ela na linha filtrada com o valor variável da célula L8 da ATP.
Acontece que o Excel não entende que é pra colar na linha do código definido por L8. Ele cola na referência direta, por exemplo, na linha 7:7 da EST, ou seja, fica sempre colando na mesma linha que gravei a macro. Vou colocar um trecho do código.
Se alguém puder me ajudar ficarei muito grato.

Sub filtra_estoque()
'
' filtra_estoque Macro
'
'
ActiveSheet.Range("$B$3:$R$14").AutoFilter Field:=1, Criteria1:=Sheets("ATP").Range("L8").Value (aqui ela filtra de acordo com o valor digitado em L8)
ActiveWorkbook.Save
End Sub
Sub atualiza_prod()
'
' atualiza_prod Macro
'
'
ActiveWindow.DisplayHeadings = True
ActiveSheet.Unprotect
Sheets("EST").Select
ActiveWindow.DisplayHeadings = True
ActiveSheet.Unprotect
ActiveWorkbook.Save
Application.Run "'Fluxo de Caixa e Controle de Estoque.xlsm'!filtra_estoque"
ActiveWorkbook.Save
Sheets("ATP").Select
ActiveWindow.SmallScroll Down:=39
Rows("52:52").Select
Selection.Copy
Rows("54:54").Select (aqui eu copio a linha 54 da aba ATP)
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Rows("54:54").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("EST").Select
ActiveWindow.SmallScroll Down:=-12
Rows("7:7").Select (aqui está o problema. Ele cola na linha 7 da aba EST, sempre na linha 7. Preciso que cole na linha definida pelo código digitado em L8 da aba ATP)
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B7").Select
ActiveSheet.Range("$B$3:$R$14").AutoFilter Field:=1
Range("F4").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("F4:F6")
Range("F4:F6").Select
Selection.AutoFill Destination:=Range("F4:F7")
Range("F4:F7").Select
Selection.AutoFill Destination:=Range("F4:F3219")
Range("F4:F3219").Select
Range("F8").Select
Sheets("ATP").Select
ActiveWindow.SmallScroll Down:=-63
Range("L13").Select
Selection.ClearContents
Range("L15:M15").Select
Selection.ClearContents
Range("L17:M17").Select
Selection.ClearContents
Range("L19:N19").Select
Selection.ClearContents
Range("L21").Select
Selection.ClearContents
Range("L23").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=6
Range("L25").Select
Selection.ClearContents
Range("L27").Select
Selection.ClearContents
Range("L29:M29").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=6
Range("L31:N32").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-30
Range("L8").Select
ActiveWindow.SmallScroll Down:=-9
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
ActiveWindow.DisplayHeadings = False
Sheets("EST").Select
Range("B4").Select
ActiveWindow.DisplayHeadings = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
Sheets("ATP").Select
ActiveWorkbook.Save
End Sub

 
Postado : 19/06/2017 9:58 am
(@brunoxro)
Posts: 0
New Member
 

Boa tarde Paulo,

Anexe uma planilha de exemplo, fica mais fácil tentar ajudar.

att,

 
Postado : 20/06/2017 12:33 pm