Página 1 de 1
Macro para copiar e colar valores
Enviado: 12 Fev 2019 às 23:01
por FelipeBarbosa
Boa noite Pessoal,
Por favor, preciso de uma ajuda para criar uma macro para copiar os valores que estão na coluna A da aba "CURVA ABC ALMOX" para a coluna A da aba LISTA FÍSICA e preencher na coluna "D" da Aba LISTA FÍSICA o dia dessa copia. Porém preciso que ao copiar a primeira informação ele faça um LOOP analisando a coluna "E" e copie somente o que for < 1 para a aba LISTA FÍSICA, na hora de colar ele precisa fazer um LOOP também para saber em qual linha esta vazia para colar.
Pra que tudo isso funcione, a MACRO tem que copiar e colar uma quantidade certa de linhas, essa quantidade está nos campos U3 , V3 e W3, ou seja, nesses campos esta determinado quantos TIPO A, B ou C tem que ser copiados. Esse tipo A,B ou C esta localizado na coluna F.
Segue a planilha em anexo para melhor esclarecer.
Qualquer dúvida posso tentar explicar melhor
agradeço desde já a ajuda.
Macro para copiar e colar valores
Enviado: 16 Fev 2019 às 23:11
por FelipeBarbosa
Boa noite Pessoal,
alguma ajuda? Preciso muita dessa macro e não sei fazer, sou iniciante em Macros.
Agradeço antecipadamente.
Re: Macro para copiar e colar valores
Enviado: 17 Fev 2019 às 09:57
por osvaldomp
FelipeBarbosa escreveu:... analisando a coluna "E" e copie somente o que for < 1
Na coluna E os valores são em percentuais. Você quer copiar os valores < 100%, é isso?
... na hora de colar ele precisa fazer um LOOP também para saber em qual linha esta vazia para colar.
Fazer Loop para encontrar a primeira célula vazia é recurso primitivo
... a MACRO tem que copiar e colar uma quantidade certa de linhas, essa quantidade está nos campos U3 , V3 e W3...
Aplicando Auto Filtro com critério <100% na coluna E e =A na coluna F, resulta em 250 registros, porém em U3 está o valor 13. Qual o critério para escolher os 13 registros que serão replicados entre os 250 filtrados ?
Re: Macro para copiar e colar valores
Enviado: 17 Fev 2019 às 12:55
por FelipeBarbosa
osvaldomp escreveu:FelipeBarbosa escreveu:... analisando a coluna "E" e copie somente o que for < 1
Na coluna E os valores são em percentuais. Você quer copiar os valores < 100%, é isso?
Perdão, a coluna correta é a G, deve copiar o codigo da primeira coluna, porem copiar somente se a coluna G estiver vazia, me enganei na hora de escrever.
... na hora de colar ele precisa fazer um LOOP também para saber em qual linha esta vazia para colar.
Fazer Loop para encontrar a primeira célula vazia é recurso primitivo
Realmente, você tem razão osvaldomp, sou iniciante no vba e estou aprendendo os recursos ainda, me desculpe pela minha ignorancia.
... a MACRO tem que copiar e colar uma quantidade certa de linhas, essa quantidade está nos campos U3 , V3 e W3...
Aplicando Auto Filtro com critério <100% na coluna E e =A na coluna F, resulta em 250 registros, porém em U3 está o valor 13. Qual o critério para escolher os 13 registros que serão replicados entre os 250 filtrados ?
Como havia escrito errado, vou corrigir esse topico também, ele deve selecionar os 13 primeiros registros de do U3, os 5 primeiros registros de V3 e os 9 primeiros registros de W3 que estão com a celula G vazia e colar la na outra planilha..
Essa macro será acionada todos os dias, a pessoa vai utilizar isso para gerar uma lista de contagem diaria de itens do ALMOX por ordem de valor, por isso o A,B e C.
Osvaldo, muito obrigado pela ajuda.
Re: Macro para copiar e colar valores
Enviado: 17 Fev 2019 às 21:58
por osvaldomp
Felipe, veja se o código abaixo atende.
Código: Selecionar todosSub ReplicaDados()
Dim LRo As Long, LRd As Long, rVis As Range, k As Long, i As Long
Application.ScreenUpdating = False
With ActiveSheet
.[A3].AutoFilter
LRo = .Cells(Rows.Count, 1).End(3).Row
For i = 21 To 23
.[A3:k3].AutoFilter 7, "="
.[A3:k3].AutoFilter 6, .Cells(1, i)
k = 0
For Each rVis In .Range("A4:A" & LRo).SpecialCells(xlCellTypeVisible)
k = k + 1: If k = .Cells(3, i) Then Exit For
Next rVis
LRd = IIf(Sheets("LISTA FÍSICA").[A2] = "", 2, Sheets("LISTA FÍSICA").[A1].End(4).Row)
.Range("A4: A" & rVis.Row).Copy Sheets("LISTA FÍSICA").Cells(LRd + 1, 1).End(3)(2)
Sheets("LISTA FÍSICA").Cells(LRd + 1, 4).End(3)(2).Resize(.Cells(3, i)).Value = Date
Next i
.[A3].AutoFilter
End With
Application.ScreenUpdating = True
End Sub
obs. considerei que sempre haverá células vazias na coluna G, com A, B e C na coluna F
Re: Macro para copiar e colar valores
Enviado: 18 Fev 2019 às 09:56
por FelipeBarbosa
osvaldomp escreveu:Felipe, veja se o código abaixo atende.
Código: Selecionar todosSub ReplicaDados()
Dim LRo As Long, LRd As Long, rVis As Range, k As Long, i As Long
Application.ScreenUpdating = False
With ActiveSheet
.[A3].AutoFilter
LRo = .Cells(Rows.Count, 1).End(3).Row
For i = 21 To 23
.[A3:k3].AutoFilter 7, "="
.[A3:k3].AutoFilter 6, .Cells(1, i)
k = 0
For Each rVis In .Range("A4:A" & LRo).SpecialCells(xlCellTypeVisible)
k = k + 1: If k = .Cells(3, i) Then Exit For
Next rVis
LRd = IIf(Sheets("LISTA FÍSICA").[A2] = "", 2, Sheets("LISTA FÍSICA").[A1].End(4).Row)
.Range("A4: A" & rVis.Row).Copy Sheets("LISTA FÍSICA").Cells(LRd + 1, 1).End(3)(2)
Sheets("LISTA FÍSICA").Cells(LRd + 1, 4).End(3)(2).Resize(.Cells(3, i)).Value = Date
Next i
.[A3].AutoFilter
End With
Application.ScreenUpdating = True
End Sub
obs. considerei que sempre haverá células vazias na coluna G, com A, B e C na coluna F
Osvaldomp, muito obrigado é isso mesmo que eu queria, preciso apenas de um ajuste.
Eu precisei inserir uma coluna a mais de descrição do campo e por isso perdeu a referencia da Macro, tentei alterar algumas coisas na macro mais nem tudo deu certo.
Poderia me ajudar atualizando o código de acordo com a planilha nova, irá mudar pouca coisa, apenas não achei na linha de programação onde mudar as colunas.
obrigado pela ajuda.
Re: Macro para copiar e colar valores
Enviado: 18 Fev 2019 às 11:24
por osvaldomp
No arquivo anterior, na planilha CURVA ABC ALMOX, o código considerou as colunas A, F e G, e na planilha LISTA FÍSICA o código considerou as colunas A e D.
Informe com exatidão quais as colunas a serem consideradas no novo arquivo.
Macro para copiar e colar valores
Enviado: 18 Fev 2019 às 12:35
por FelipeBarbosa
Desculpe, precisei atualizar hoje. Favor considerar na CURVA ABC ALMOX A, G e H e na planilha Lista Fisica A e E.
Re: Macro para copiar e colar valores
Enviado: 18 Fev 2019 às 14:56
por osvaldomp
Código: Selecionar todosSub ReplicaDados()
Dim LRo As Long, LRd As Long, rVis As Range, k As Long, i As Long
Application.ScreenUpdating = False
With ActiveSheet
.[A3].AutoFilter
LRo = .Cells(Rows.Count, 1).End(3).Row
For i = 23 To 25
.[A3:k3].AutoFilter 8, "="
.[A3:k3].AutoFilter 7, .Cells(1, i)
k = 0
For Each rVis In .Range("A4:A" & LRo).SpecialCells(xlCellTypeVisible)
k = k + 1: If k = .Cells(3, i) Then Exit For
Next rVis
LRd = IIf(Sheets("LISTA FÍSICA").[A2] = "", 2, Sheets("LISTA FÍSICA").[A1].End(4).Row)
.Range("A4: A" & rVis.Row).Copy Sheets("LISTA FÍSICA").Cells(LRd + 1, 1)
Sheets("LISTA FÍSICA").Cells(LRd + 1, 5).Resize(.Cells(3, i)).Value = Date
Next i
.[A3].AutoFilter
End With
Application.ScreenUpdating = True
End Sub
dica - você colocou o código no módulo de
EstaPasta_de_trabalho e, embora o código funcione, é recomendável que esse tipo de código (Sub) seja instalado em um módulo comum (menu
Inserir / Módulo); o módulo de
EstaPasta_de_trabalho é comumente reservado para alojar eventos de arquivo.
Macro para copiar e colar valores
Enviado: 19 Fev 2019 às 07:45
por FelipeBarbosa
obrigado Osvaldo, deu certo.
Show!! abraços