Jump to content

VBA-Macro para filtrar data e colar num novo livro se este não existir, e colar na última célula preenchida


sagostinho

Recommended Posts

Boa Noite, Sou Novo no VBA e estou a tentar desenvolver uma macro que me faça o seguinte: tenho Vários dados em 5 colunas e o que pretendo fazer é um filtro pela coluna [E] e que adicione novo livro em csv com o nome do filtro, mas se o livro já existir então vai colar os dados de acordo a coluna [A]. ex:macro faz filtro pela coluna E, copia linha 1, 2 para um novo livro com o nome 100, se esse livro já existe, então vai copiar os dados e colar na ultima célula preenchida se não existir as datas 15/08/2019 ou 16/08/2019, se as datas existirem então substituir os dados. O que tenho até agora é a seguinte macro que encontrei na internet. se me pudessem ajudar agradecia imenso, obrigado.

Sub DistributeRowsToNewWBS()
Dim wbNew As Workbook Dim wsData As Worksheet Dim wsCrit As Worksheet Dim wsNew As Worksheet Dim rngCrit As Range Dim LastRow As Long

Set wsData = Worksheets("Folha1") ' name of worksheet with the data
Set wsCrit = Worksheets.Add

LastRow = wsData.Range("e" & Rows.Count).End(xlUp).Row

' column H has the criteria
wsData.Range("e1:e" & LastRow).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=wsCrit.Range("A1"), Unique:=True

Set rngCrit = wsCrit.Range("A2")
While rngCrit.Value <> ""
    Set wsNew = Worksheets.Add
    ' change E to reflect columns to copy
    wsData.Range("A1:E" & LastRow).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=rngCrit.Offset(-1).Resize(2), CopyToRange:=wsNew.Range("A1"), Unique:=True
    wsNew.Name = rngCrit
    wsNew.Copy
    Set wbNew = ActiveWorkbook
    ' saves new workbook in path of existing workbook
    wbNew.SaveAs ThisWorkbook.Path & "\" & rngCrit
    wbNew.Close SaveChanges:=True
    Application.DisplayAlerts = False
    wsNew.Delete
    rngCrit.EntireRow.Delete
    Set rngCrit = wsCrit.Range("A2")
Wend

wsCrit.Delete
Application.DisplayAlerts = True
End Sub

https://ibb.co/nQgNqM1

Link to comment
Share on other sites

  • 3 weeks later...

Boa tarde @sagostinho.

Poderia explicar como iria ser feito esse filtro?

Seria uma entrada automática (Que iria buscar a outro ficheiro), ou seria uma entrada manual (por exemplo uma caixa de input onde seria inserido o valor a ser filtrado)-

Obrigado e aguardo respostas.

Cumps, Afonso Mira

Afonso Mira 😃

Programador de Produção em: Aernnova Évora

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.