• Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Lidiane Colli

Filtrar e Salvar Informações - Através de VBA/Excel

9 posts neste tópico

Boa Tarde Pessoal,

 

Estou precisando de uma ajuda para montar um VBA ou Macro que filtre a coluna A "Conta" e salve todo o conteúdo referente a essa conta individualmente em PDF, em uma pasta chamada rede na area de trabalho. cada conta no layout da pagina em orientação Paisagem.

 

Alguém pode me auxiliar para montar essa VBA/Macro, estou precisando pois é um trabalho semanal que tenho que operacionalizar na empresa.

 

Alguém pode me ajudar a montar o código, pois estou iniciando e não consegui montar sozinha, agradeço desde já.


Desde já muito obrigada.

Arquivo esta em anexo.

Base - 20.03.2017.xlsx

Compartilhar este post


Link para o post
Compartilhar em outros sites

#2   Postado (editado)

@Lidiane Colli Qual o criterio do filtro da coluna A? 

O que  seria "todo conteudo referente a essa conta individualmente .."?

 

 

 

 

 

 

Editado por Basole
1 pessoa curtiu isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Eu  preciso filtrar todas as informações que constam nesta base por conta ( coluna A).

 

Conforme anexo. (precisa ficar salvo desta maneira) Individualmente por Conta ( colunaA)

 

Deu para entender?

21021000.pdf

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Lidiane

 

De uma olhada no código abaixo, tentei anexar a planilha mas não consegui, o único problema é que tem que copiar o código para cada conta, acho que da para melhorar, mas ainda estou começando também.

Coloquei para salvar em excel, caso não precise basta eliminar o código.

Eu criei um botão e atribui a macro "Extrair_Conta" a ele.

 

Espero que ajude.

 

Dim Nome_Conta As Variant

 

Sub Extrair_Conta()

    '1º Conta
    'Realiza um filtro com base por projeto e armazena o nome do projeto na variavel Nome_Conta
       
    ActiveSheet.Range("$A:$F").AutoFilter Field:=1, Criteria1:="=22654000"
    Nome_Conta = "Conta 22654000"
        
    'cria uma nova planilha e copia e cola o conteudo filtrado acima e salva com o nome do projeto
    'Deve ser alterado o local onde será salva a planilha
    Range("A9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.SpecialCells(xlCellTypeVisible).Select
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Selection.Columns.AutoFit
    Application.CutCopyMode = False
    ChDir "C:\Users\esdras.pelegrin\Desktop"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\esdras.pelegrin\Desktop\" & Nome_Conta & ".xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWindow.ActivateNext
    
    'Altera a orientação para paisagem
    ActiveSheet.PageSetup.Orientation = xlLandscape
    
    'Salva a Planilha em PDF sem abrir o PDF, se "openafterpublish:= Sim" ele abre o PDF
    'Deve ser alterado o local onde será salva a planilha
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
     "C:\Users\esdras.pelegrin\Desktop\" & Nome_Conta & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        openafterpublish:=False
    ChDir "C:\Users\esdras.pelegrin\Desktop"
      
    'Seleciona uma planilha de acordo com o nome atribuido a variavel e fecha a mesma.
    Windows(Nome_Conta).Activate
    ActiveWindow.Close

'-----------------------------------------------------------------------------------------------------
    '2º Conta
    'Realiza um filtro com base por projeto e armazena o nome do projeto na variavel Nome_Conta
    ActiveSheet.Range("$A:$F").AutoFilter Field:=1, Criteria1:="=21207000"
    Nome_Conta = "Conta 21207000"
    
    'cria uma nova planilha e copia e cola o conteudo filtrado acima e salva com o nome do projeto
    Range("A9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.SpecialCells(xlCellTypeVisible).Select
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Selection.Columns.AutoFit
    Application.CutCopyMode = False
    ChDir "C:\Users\esdras.pelegrin\Desktop"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\esdras.pelegrin\Desktop\" & Nome_Conta & ".xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWindow.ActivateNext
  
    'Altera a orientação para paisagem
    ActiveSheet.PageSetup.Orientation = xlLandscape
  
    'Salva a Planilha em PDF sem abrir o PDF, se "openafterpublish:= Sim" ele abre o PDF
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\esdras.pelegrin\Desktop\" & Nome_Conta & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        openafterpublish:=False
    ChDir "C:\Users\esdras.pelegrin\Desktop"
  
    'Seleciona uma planilha de acordo com o nome atribuido a variavel e fecha a mesma.
    Windows(Nome_Conta).Activate
    ActiveWindow.Close
    
    'Limpa todos os filtros
    Selection.AutoFilter
    Range("A9:I9").Select
    Selection.AutoFilter
    Range("A1").Select

MsgBox "Processo Finalizado"

End Sub

 

adicionado 43 minutos depois

Segue a macro com a alteração para apenas gerar gerar o PDF

 

Dim Nome_Conta As Variant

Sub Extrair_Conta()

    '1º Conta
    'Realiza um filtro por conta e armazena o nome da Conta na variavel Nome_Conta
       
    ActiveSheet.Range("$A:$F").AutoFilter Field:=1, Criteria1:="=22654000"
    Nome_Conta = "Conta 22654000"
       
    'Altera a orientação para paisagem
    ActiveSheet.PageSetup.Orientation = xlLandscape
    
    'Salva a Planilha em PDF sem abrir o PDF, se "openafterpublish:= Sim" ele abre o PDF
    'Deve ser alterado o local onde será salva a planilha
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
     "C:\Users\esdras.pelegrin\Desktop\" & Nome_Conta & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        openafterpublish:=False
    ChDir "C:\Users\esdras.pelegrin\Desktop"
      
    '-----------------------------------------------------------------------------------------------------
    '2º Conta
    'Realiza um filtro por conta e armazena o nome da Conta na variavel Nome_Conta
    ActiveSheet.Range("$A:$F").AutoFilter Field:=1, Criteria1:="=21207000"
    Nome_Conta = "Conta 21207000"
        
    'Altera a orientação para paisagem
    ActiveSheet.PageSetup.Orientation = xlLandscape
  
    'Salva a Planilha em PDF sem abrir o PDF, se "openafterpublish:= Sim" ele abre o PDF
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\esdras.pelegrin\Desktop\" & Nome_Conta & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        openafterpublish:=False
    ChDir "C:\Users\esdras.pelegrin\Desktop"
  
'-----------------------------------------------------------------------------------------------------
    
    'Limpa todos os filtros
    Selection.AutoFilter
    Range("A9:I9").Select
    Selection.AutoFilter
    Range("A1").Select

MsgBox "Processo Finalizado"

End Sub
 

1 pessoa curtiu isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, desta forma terei que criar um código por conta? 

 

Não tem nada que faca isso de uma maneira mais rápida? 

 

Terei que criar todos os códigos com as contas para depois executar e isso né? 

 

Não tem nada que eu consiga fazer diferente disso? 

 

Obrigada desde já.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

#6   Postado (editado)

Citação
Citação

Eu  preciso filtrar todas as informações que constam nesta base por conta ( coluna A).

Conforme anexo. (precisa ficar salvo desta maneira) Individualmente por Conta ( colunaA)

Deu para entender?

 

Sim entendi.

Eu criei uma lista com os numeros de contas distintas na coluna G e a partir desta lista a macro faz um loop filtrando cada conta e salvando o conteudo filtrado, em pdf na pasta especificada.

 

Ajuste caminho completo (diretorio) da pasta, onde deseja salvar os Pdf(s), na celula H1.

 

 

 

  

 

Base - 20.03.2017.zip

Editado por Basole
1 pessoa curtiu isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, vou abrir o arquivo amanhã cedo ok. Ai qualquer dúvida informo aqui. Desde ja muito obrigada pela ajuda. 

 

adicionado 16 minutos depois
1 hora atrás, Basole disse:

Sim entendi.

Eu criei uma lista com os numeros de contas distintas na coluna G e a partir desta lista a macro faz um loop filtrando cada conta e salvando o conteudo filtrado, em pdf na pasta especificada.

 

Ajuste caminho completo (diretorio) da pasta, onde deseja salvar os Pdf(s), na celula H1.

 

 

 

  

 

Base - 20.03.2017.zip

Acabei baixando aqui em casa mesmo. é isso ai, muito obrigada deu certinho. Outra dúvida que tenho, é muito difícil para eu utilizar essa macro e fazer  disparar o email? 

Ex. Ela separa os arquivos e já envia cada conta para um determinado email, tem como fazer isso?

 

Outra dúvida, eu tenha varias bases que preciso separar por conta, posso usar o mesmo código sempre, só cuidando as colunas?

 

Mais uma vez obrigada.

 

adicionado 16 minutos depois

Acabei baixando aqui em casa mesmo. é isso ai, muito obrigada deu certinho. Outra dúvida que tenho, é muito difícil para eu utilizar essa macro e fazer  disparar o email? 

Ex. Ela separa os arquivos e já envia cada conta para um determinado email, tem como fazer isso?

 

Outra dúvida, eu tenha varias bases que preciso separar por conta, posso usar o mesmo código sempre, só cuidando as colunas?

 

Mais uma vez obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo: Cada conta possui um endereço de email, preciso mandar esse pdf + um arquivo .xlx nomeado tambem como número da conta, para esse determinado email? Possui alguma forma de fazer isso?

 

Desde já obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia @Lidiane Colli,

Sim é possivel, aproveitando a rotina que eu ja fiz, pode acrescentar no script o envio do pdf e o *.xlsx em anexo para cada respectiva conta de e-mail. 

Mas isso é algo mais elaborado e que requer boas horas de programação.

 

 

 

 

 

 

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar agora