Usuário com melhor resposta
CONSULTAR DADOS DA PLANILHA ?

Pergunta
-
Pessoal, boa noite!
Preciso de uma ajuda...
Tenho uma planilha como nome "BASE", nela eu tenho uma a coluna ("T") onde constam dias de produtos sem venda.
Preciso de uma macro que possibilite eu buscar desta planilha todos os produtos com mais de 365 dias sem venda e copiá-los para uma outra planilha. Os dados a serem copiados são das colunas A até a coluna V.
Desde já muito obrigado!
Abraço.
Respostas
-
Boa noite Everton_Delmiro, como vai?
Segue um exemplo de filtro avançado que pode ser usado no seu caso:
Base:
Código:
Range("C2:F7").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("I1:I2"), CopyToRange:=Range("L2:O7"), Unique:=False
Espero que seja útil.
Abraço.
- Marcado como Resposta Everton_Delmiro sexta-feira, 14 de novembro de 2014 00:52
-
Olá...
Bem não sou expert mas este cod soluciona o que você pede. Claro que pode melhorar, mas fiz em 10 mins kk
Espero ter ajudado.
Function fteste() 'considerando que a coluna dias é a "J" e que elas vão de A até J Dim wb As Workbook Set wb = ActiveWorkbook Dim ws As Worksheet, base As Worksheet Set ws = wb.Sheets(1) 'defina a planilha aqui Set base = wb.Sheets(2) Dim l As Long 'linha l = ws.Range("A:A").End(xlDown).Row 'qtde de linhas Dim rg As Range Set rg = ws.Range("A1:J" & l) 'define o range dos dados rg.AutoFilter 'hab o filter ws.AutoFilter.Sort.SortFields.Add ws.Range("J1:J" & l), , xlDescending, xlSortNormal 'filtro por col j descendente rg.AutoFilter 'desabilta o filter Dim p As Long 'ponteiro p = 2 Do While ws.Range("j" & p).Value > 365 'marca até 365 dias p = p + 1 Loop base.Range("a1:j" & p).Value = ws.Range("a1:j" & p).Value End Function
- Marcado como Resposta Everton_Delmiro sexta-feira, 14 de novembro de 2014 00:51
-
Everton,
A primeira solução apresentada parece ser adequada para seu caso. Apenas altere o argumento CopyToRange:=Range("L2:O7") por CopyToRange:=Range("L2:O700000"), por exemplo.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Everton_Delmiro sexta-feira, 14 de novembro de 2014 00:52
Todas as Respostas
-
Boa noite Everton_Delmiro, como vai?
Segue um exemplo de filtro avançado que pode ser usado no seu caso:
Base:
Código:
Range("C2:F7").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("I1:I2"), CopyToRange:=Range("L2:O7"), Unique:=False
Espero que seja útil.
Abraço.
- Marcado como Resposta Everton_Delmiro sexta-feira, 14 de novembro de 2014 00:52
-
Bom dia cara...
Obrigado pela ajuda, mais na verdade algo um pouco mais complexo. Minha planilha tem mais de 80 mil linhas.
Preciso de algo que faça uma busca em todas as linhas e quando encontrar itens igual ou maior que 365 dias sem vendas, copie-os e cole-os em uma nova guia da minha pasta de trabalho.
Mais uma vez muito obrigado!
Abraço.
-
-
Segue link para baixar o arquivo.
-
-
Olá...
Bem não sou expert mas este cod soluciona o que você pede. Claro que pode melhorar, mas fiz em 10 mins kk
Espero ter ajudado.
Function fteste() 'considerando que a coluna dias é a "J" e que elas vão de A até J Dim wb As Workbook Set wb = ActiveWorkbook Dim ws As Worksheet, base As Worksheet Set ws = wb.Sheets(1) 'defina a planilha aqui Set base = wb.Sheets(2) Dim l As Long 'linha l = ws.Range("A:A").End(xlDown).Row 'qtde de linhas Dim rg As Range Set rg = ws.Range("A1:J" & l) 'define o range dos dados rg.AutoFilter 'hab o filter ws.AutoFilter.Sort.SortFields.Add ws.Range("J1:J" & l), , xlDescending, xlSortNormal 'filtro por col j descendente rg.AutoFilter 'desabilta o filter Dim p As Long 'ponteiro p = 2 Do While ws.Range("j" & p).Value > 365 'marca até 365 dias p = p + 1 Loop base.Range("a1:j" & p).Value = ws.Range("a1:j" & p).Value End Function
- Marcado como Resposta Everton_Delmiro sexta-feira, 14 de novembro de 2014 00:51
-
Everton,
A primeira solução apresentada parece ser adequada para seu caso. Apenas altere o argumento CopyToRange:=Range("L2:O7") por CopyToRange:=Range("L2:O700000"), por exemplo.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Everton_Delmiro sexta-feira, 14 de novembro de 2014 00:52
-
-