Ir ao conteúdo
  • Cadastre-se

djacy.neto

Membro Pleno
  • Posts

    52
  • Cadastrado em

  • Última visita

posts postados por djacy.neto

  1. tenho uma planilha que uso para fazer conversão de dados. basicamente eu trabalho com duas sheets uma eu jogo os dados brutos e na outra eu tenho as formulas que limpam os dados de acordo com o que eu quero.

    acontece que na segunda eu tenho uma coluna que uso como indicador deletar/nao deletar. quando eu aciono este filtro, a planilha fica uns 10 a 15min processando e com a informação (não respondendo) no cabeçalho da pagina.

    eu atualmente estou com uma maquina que posso considerar potente para que este processo seja rápido. e quando eu abro o gerenciador de tarefas, o grafico de desempenho mostra que nao esta sendo usado nem 10% do CPU e também nao tem um uso da memoria.

    existe alguma configuração a fazer que faça a maquina priorizar os o excel?

    configuração da maquina: DELL XPS 8940 CORE I7 RAM 16GB GTX 1660 HDD 1TB SSD 256GB

  2. pessoal tenho uma macro que pega um arquivo dentro de uma pasta, converte ele de txt com largura fixa para csv e salva em uma outra pasta. eu recebo cerca de 400 a 450 arquivos neste formato para conversão, a macro ficou muito grande e dividi em 4 partes. até ai ok porque funciona bem, porém existe uma variação nos arquivos exemplo: mes passado eu recebi o arquivo djacy_txt e este mes eu nao recebi, então quando a macro chega no arquivo djacy_txt e nao encontra ele para me diz que houve um erro porque nao encontrou o arquivo. gostaria de saber como eu faco para por um se (if) na macro p que ela faça assim:

     

    se encontrar o arquivo XXXX.txt faça (macro de conversão)

    senao procurar proximo arquivo.

     

    Abaixo o codigo:

        Workbooks.OpenText Filename:="P:\MACRO P CONVERSÃO\VBA\BRUTO\djacy.txt", _
            Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array( _
            Array(0, 1), Array(5, 1), Array(12, 1), Array(20, 1), Array(29, 1), Array(31, 1), Array(76, _
            1), Array(87, 1), Array(92, 1), Array(93, 1), Array(104, 1), Array(107, 1), Array(113, 1), _
            Array(125, 1), Array(145, 1)), TrailingMinusNumbers:=True
        Columns("O:O").Select
        Selection.ClearContents
        Range("Q5").Select
          ActiveWindow.SmallScroll Down:=-18
        dirCopia = "P:\MACRO P CONVERSÃO\VBA\CONVERTIDO\"
        nomeCopia = "djacy"
    ActiveWorkbook.SaveAs Filename:= _
    dirCopia + nomeCopia, _
    FileFormat:=xlCSV, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    Workbooks("marcelo.csv").Close SaveChanges:=False

     

  3. @drlnss tudo bem?

    neste caso, como nenhuma das alternativas dos amigos deu certo, tenta dessa forma:

    with interno as (
    
    select SUM(servicointerno.valor)as valor_total from servicointerno),
    
    externo as (
    
    select SUM(servicoexterno.valorServico)as valor_total from servicoexterno),
    
    total as (
    
    select * from interno
    
    union 
    
    select * from externo)
    
    
    
    select sum(valor_total) from total

    espero ter ajudado!

     

    Abs

  4. pessoal,

     

    conheço bem pouco os comandos pelo cmd, hoje, eu tenho cerca de 200 arquivos em csv com mesmo layout, eu entro pelo cmd e digito o comando:

    copy *.csv uniao.csv

    ai ele copia todos os arquivos e cola em um único arquivo.

    o que eu preciso é fazer este mesmo processo mais que acrescente uma coluna com o nome do arquivo para identificar de onde vem aqueles dados.

  5. @Luis Geraldo  essa planilha voce vai ter uma para cada mes ou quer ter uma para trabalhar direto?

    porque essa meta para fazer calculando o decréscimo de dias do mes precisa de uma tabela só para fazer essa conta.

    caso nao seja necessario a meta, a dinamica fica bem simples,  ela mostra assim:

     

    image.png.006d259e95f026b0c928509435ec59c1.png

     

    quando a gente faz a segmentação de dados como eu fiz no arquivo em anexo, usando o Destino como critério, fica dessa forma:

    sem seleção:

    image.png.119c2f999258901b2be69d4e34ad140d.png

     

    Destino Arcos:

    image.png.339b2b8a9e7d54d67e27c98d545c7d8b.png

    Destino Volta Redonda:

    image.png.180a76d33a4eec5ab11b35399ad68c61.png

    se preferir sem a segmentação, deixa dessa forma:

    image.png.6da0643b67f08d9aa491dadbeab35e2e.png

     

     

    image.png

    image.png

    Pasta3.xlsx

  6. @ricardo_br  Exatamente... fosse poucos casos nem precisaria de script...

    adicionado 1 minuto depois
    agora, ricardo_br disse:

    No caso seria esse mesmo tópico em que eu já tinha tentado lhe ajudar no site technet da microsoft correto?

    technet

     

    Eu vou atualizar o mesmo script que já tinha postado la e já volto

    isso! ja rodei bastante e estou juntando as info que consegui, descobri que usando bat eu consigo converter os arquivos em csv, e no script que você postou consigo modelar as colunas de acordo com cada limitação e apos isso, eu consigo transformar os 700 arquivos em um unico csv para importar para o sql...

  7. pessoal, tenho um script para fazer a separação de arquivos csv,

    o que o script faz e abrir o arquivo e modela as colunas, 

    gostaria de saber o que eu posso mudar nesse script para que seja criada uma ultima coluna e repetir nas linhas o nome do arquivo.

    @echo off
    chcp 1252 > nul
    SetLocal EnableDelayedExpansion
    
    :: Coloque aqui o caminho para os arquivos csv 
    set "Pasta=300"
    
    :: Aqui será criada uma pasta com os arquivos modificados:
    if not exist %Pasta%_mod md %Pasta%_mod 
    
    for %%a in ("%Pasta%\*.csv") do (
    echo Orgao;Matricula_Inst;Matricula;UPAG;UF;Nome;CPF;Rubrica;Sequencia;PMT;Prazo;CodUG;Status;Contrato>>"%Pasta%_mod\%%~nxa"
    
    for /f "skip=1 usebackq tokens=*" %%b in ("%%a") do (
    set "Linha=%%b"
    set "Orgao=!Linha:~0,5!"
    set "Matricula_Inst=!Linha:~5,7!"
    set "Matricula=!Linha:~12,8!"
    set "UPAG=!Linha:~20,9!"
    set "UF=!Linha:~29,2!"
    set "Nome=!Linha:~31,45!"
    set "CPF=!Linha:~76,11!"
    set "Rubrica=!Linha:~87,5!"
    set "Sequencia=!Linha:~92,1!"
    set "PMT=!Linha:~93,11!"
    set "Prazo=!Linha:~104,3!"
    set "CodUG=!Linha:~107,6!"
    set "Status=!Linha:~113,12!"
    set "Contrato=!Linha:~125,20!"
    echo !Orgao!;!Matricula_Inst!;!Matricula!;!UPAG!;!UF!;!Nome!;!CPF!;!Rubrica!;!Sequencia!;!PMT!;!Prazo!;!CodUG!;!Status!;!Contrato!>>"%Pasta%_mod\%%~nxa"
    )
    )
    :: Orgao=5 (0,5)
    :: Matricula_Inst=7 (5,7)
    :: Matricula=20 (12,8)
    :: UPAG=29 (20,9)
    :: UF=31 (29,2)
    :: Nome=76 (31,45)
    :: CPF=87 (76,11)
    :: Rubrica=92 (87,5)
    :: Sequencia=93 (92,1)
    :: PMT=104 (93,11)
    :: Prazo=107 (104,3)
    :: CodUG=113 (107,6)
    :: Status=125 (113,12)
    :: Contrato=145 (125,20)

     

  8. @Midori

    certo!

     

    o codigo que eu uso é este:

    Workbooks.OpenText Filename:="P:\MACRO P CONVERSÃO\txt_01.txt", Origin _
            :=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0 _
            , 1), Array(5, 1), Array(12, 1), Array(21, 1), Array(23, 1), Array(73, 1), Array(84, 1), _
            Array(89, 1), Array(90, 1), Array(101, 1), Array(104, 1), Array(110, 1), Array(122, 1), _
            Array(142, 1)), TrailingMinusNumbers:=True
        Columns("N:N").Select
        Selection.ClearContents
        Range("P3").Select
        ActiveWindow.SmallScroll Down:=-18
        
          Workbooks.OpenText Filename:="P:\MACRO P CONVERSÃO\txt_02.txt", Origin _
            :=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0 _
            , 1), Array(5, 1), Array(12, 1), Array(21, 1), Array(23, 1), Array(73, 1), Array(84, 1), _
            Array(89, 1), Array(90, 1), Array(101, 1), Array(104, 1), Array(110, 1), Array(122, 1), _
            Array(142, 1)), TrailingMinusNumbers:=True
        Columns("N:N").Select
        Selection.ClearContents
        Range("P3").Select
        ActiveWindow.SmallScroll Down:=-18

    eu uso a repetição, mudando apenas o nome do arquivo que vai ser convertido.

  9. pessoal,

    eu tenho uma macro para conversão de txt em excel, eu fiz um codigo que converte e abre o arquivo.

    como eu tenho muitos arquivos eu repliquei o codigo alterando o nome do arquivo que estava sendo convertido.

    ai agora eu faco a conversão e fico com 40 planilhas abertas e tenho que juntar todas em uma unica planilha,

    todas tem o mesmo layout, ai eu pego uma e vou colando as demais embaixo dela e fechando...

    esse é um processo que eu perco muito tempo, gostaria de saber se tem alguma macro que eu consiga unificar todas as planilhas ativas de uma só vez.

  10. @osvaldomp esse é o codigo, a unica coisa que eu faco é replicar 

     

     Sheets("Geral").Select
       ActiveSheet.Range("c38:ao75").Select
       Application.CutCopyMode = False
       Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
            
       ActiveWorkbook.EnvelopeVisible = True
      
       With ActiveSheet.MailEnvelope
        .Introduction = "Boa tarde!" + vbCrLf + " " + vbCrLf + "Segue quadro"
        .Item.to = "[email protected]"
        .Item.Cc = "[email protected]"
        .Item.Subject = "assunto"
        .Item.Attachments.Add "P:\arquivo1.xlsx"
        .Item.Send
       end with
    
     Sheets("Geral").Select
       ActiveSheet.Range("c38:ao75").Select
       Application.CutCopyMode = False
       Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
            
       ActiveWorkbook.EnvelopeVisible = True
      
       With ActiveSheet.MailEnvelope
        .Introduction = "Boa tarde!" + vbCrLf + " " + vbCrLf + "Segue quadro"
        .Item.to = "[email protected]"
        .Item.Cc = "[email protected]"
        .Item.Subject = "assunto"
        .Item.Attachments.Add "P:\arquivo2.xlsx"
        .Item.Send
       end with
    
     Sheets("Geral").Select
       ActiveSheet.Range("c38:ao75").Select
       Application.CutCopyMode = False
       Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
            
       ActiveWorkbook.EnvelopeVisible = True
      
       With ActiveSheet.MailEnvelope
        .Introduction = "Boa tarde!" + vbCrLf + " " + vbCrLf + "Segue quadro"
        .Item.to = "[email protected]"
        .Item.Cc = "[email protected]"
        .Item.Subject = "assunto"
        .Item.Attachments.Add "P:\arquivo3.xlsx"
        .Item.Send
       end with
    end sub
    

    o que muda sao os anexos e os emails destino..

  11. pessoal tenho uma macro para enviar emails, e o que esta acontecendo é:

    cada email tem um anexo, mais ele esta juntando os anexos ao enviar.

    ele deve enviar email1 anexo1, email2 anexo2,

    e esta enviando assim email1 anexo1 email2 anexo1 anexo2...

    e a cada email ele vai agrupando os anexos.

    segue codigo abaixo:

     Sheets("Geral").Select
       ActiveSheet.Range("c38:ao75").Select
       Application.CutCopyMode = False
       Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
            
       ActiveWorkbook.EnvelopeVisible = True
      
       With ActiveSheet.MailEnvelope
        .Introduction = "Boa tarde!" + vbCrLf + " " + vbCrLf + "Segue quadro"
        .Item.to = "[email protected]"
        .Item.Cc = "[email protected]"
        .Item.Subject = "assunto"
        .Item.Attachments.Add "P:\arquivo.xlsx"
        .Item.Send

    excel 2019

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!