Ir ao conteúdo
  • Cadastre-se

Bruno Rodrigues_775653

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Bom dia! Preciso de ajuda para criar uma planilha onde contem os campos: Nome, CNPJ, E-mail (A planilha real terá mais campos, porém este será o filtro básico). A função da macro seria basicamente pegar o primeiro CNPJ (linha 2), filtra-lo para encontrar todos os cadastros com o mesmo CNPJ, depois disto a macro gera um novo arquivo em XLS com o nome Nº DA LINHA_NOME_DATA (ex: 04_microsoft_02102015.xls), após gerar planilha ele copiaria as informações do filtro e colaria na nova planilha, depois voltaria para a planilha do filtro, excluiria as linhas do relatório, desfazia o filtro. Tudo isso dentro de um LOOP que para quando a coluna c estiver vazia. Eu fiz a minha aqui, porém ele para e retorna em um erro que não consigo corrigir (eu fiz para criar sheet até que terminasse a macro). Ele vai, copia a primeira, só que na hora do loop ele dá erro, começa a gerar sheets com o o nome PLAN Sub exec()Dim linha AsIntegerDim sheetname AsStringlinha =2linha2 =2x = Range("C"& linha).Valuem = Split(n," ")(0)sheetname = linha2 &"_"& mWith ActiveSheetDoWhile Range("C"& linha).Value <>"".AutoFilterMode =FalseWith Range("C1", Range("C"& Rows.Count).End(xlUp)).AutoFilter 1, xOnErrorResumeNextSheets.Add.Name = sheetnameSheets("Plan2").SelectRange("A2:D"& Rows.Count).SpecialCells(xlCellTypeVisible).SelectSelection.CopySheets(sheetname).SelectRange("A1").SelectRange("A1").PasteSpecialSheets("Paste2").Select.Offset(1).SpecialCells(12).EntireRow.DeleteSheets("Paste2").SelectRange("c1").Select.AutoFilterMode =FalseSheets("Plan2").SelectActiveSheet.Range("$C$1:C"& Rows.Count).AutoFilter Field:=1linha = linha +1EndWithLoopEndWithEndSub Eu preciso que ele gere novos arquivos, ou se possível seja incluido em uma planilha já existente chamada mb.xls na linha B11 esta planilha tem um limite de colunas, então eu acrescentarei um codigo ao qual ele excluira algumas colunas nas quais não utilizarei mais. O arquivo original contém vai desde a coluna A até a AB as colunas que serão excluídas serão: A,B,C - F,G - J,N - P (conforme codigo que será incluido para excluir as colunas abaixo) Código (Text): Worksheets("Temp").Columns(1).Delete Worksheets("Temp").Columns(1).Delete Worksheets("Temp").Columns(1).Delete Worksheets("Temp").Columns(1).Delete Worksheets("Temp").Columns(7).Delete Worksheets("Temp").Columns(7).Delete Worksheets("Temp").Columns(7).Delete Worksheets("Temp").Columns(7).Delete Worksheets("Temp").Columns(9).Delete Worksheets("Temp").Columns(7).Delete A coluna (após as exclusões) na qual ficará o campo de filtro será a Q A coluna onde ficará o código do cliente é a P Ele filtra todos os clientes com o mesmo nome, cria uma nova planilha para ser salvo em algum diretorio no computador (de preferência no mesmo diretorio onde ficará a planilha) e então ele copia e deleta do relatório orignal a linha já utilizada. Já procurei diversos codigos prontos e tentei organiza-lo da forma que eu desejo porém sempre resulta alguma mensagem de erro. Se puder ajudar fico imensamente grato.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...