Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
  • Avatar do usuário
Avatar do usuário
Por LEO2004
Posts Avatar
#46358
Ola amigos,

Tenho esse projeto quase pronto onde que ele importa um arquivo TXT ."sped" separando os registros por blocos.. onde eu posso editar e informações acrescentando e tirando..
O meu problema e o seguinte e na hora de exportar para txt.. Eu criei um modo via VBA que insere uma coluna nova em cada planilha e depois de inserido ele vai concatenar a informação das colunas do lado.. Só que ele só faz isso em uma linha só..
Tipo se na A2 tenho informações ele concatena B2, C3 e assim por diante... Mas ele só ta fazendo nessa linha..
Se B3, C3 etc.. tiver informa ele ta contentando para linha abaixo.. no caso "A3"

A planilha é muito grande e não consigo enviar por aqui..
Meu e-mail de contato é leoeugomes@gmail.com e whats 51 999211289

Alguém pode me ajudar..?

Eu tentei isso primeiramente..

O código abaixo ele percorre todas as planilhas e vai concatenando, porem só a primeira linha de informação..
Preciso concatenar todas que tiverem informações...

Sub Percorre_planilhas_concatenando()


Contagem = Sheets.Count

Cont = 1

Do Until Cont > Contagem



Sheets(Cont).Select
Range("A2").Value = Range("B2").Value & Range("C2").Value & Range("D2").Value & Range("F2").Value & Range("G2").Value & Range("H2").Value & Range("I2").Value & Range("J2").Value & Range("K2").Value & Range("L2").Value & Range("M2").Value & Range("N2").Value & Range("O2").Value & Range("P2").Value & Range("Q2").Value & Range("R2").Value & Range("T2").Value & Range("V2").Value & Range("W2").Value & Range("X2").Value & Range("Y2").Value & Range("Z2").Value & Range("AA2").Value & Range("AB2").Value & Range("AC2").Value & Range("AD2").Value & Range("AE2").Value & Range("AF2").Value & Range("AG2").Value & Range("AH2").Value & Range("AI2").Value & Range("AJ2").Value & Range("AK2").Value & Range("AL2").Value & Range("AM2").Value & Range("AN2").Value


Cont = Cont + 1

Loop




End Sub
Avatar do usuário
Por Jimmy
Avatar
#46359
Leo,

Você consegue montar uma planilha reduzida apenas para testes? Apagar, por exemplo, as linhas abaixo de 10, deixar 2 ou 3 planilhas, e anexar na mensagem?

Jimmy
Avatar do usuário
Por LEO2004
Posts Avatar
#46360
Olá Jimmy, Obrigado pelo seu retorno..

Estou lhe encaminhado a planilha..
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por OTACILIO144
Posts Avatar
#46362
opa blz amigo
bom creio que deva estar faltando apenas aproveitar a variável cont para ir para próxima linha, tenta alterar dessa forma:

Range("A" & cont).Value = Range("B" & cont).Value & Range("C" & cont).Value

faça isso no código todo claro neh haha, se der certo deixa seu joinha :D
Avatar do usuário
Por Jimmy
Avatar
#46367
Leo,

Alterei algumas das tuas macros. Verifique e adote aquelas que julgar que estão melhor.

A macro já está funcionando.

Nas tuas macros você adota como critério que a primeira planilha seria a que junta todos os concatenados (a TXT), e as demais são fornecedoras de dados. Eu mudei o critério para permitir que a posição da planilha TXT seja qualquer uma.

A macro identifica a planilha TXT por ela não começar pelo caractere “|”. As que iniciam com esse caractere, ela considera que são planilhas fornecedoras, independentemente da posição dela na aba de planilhas.

As macros de inserção e deleção da coluna A, eu apaguei aquelas dezenas de linhas, e fiz com loop. Também coloquei uma verificação para evitar que sejam acionadas 2 vezes, sem querer, o que poderia causar a inserção de duas colunas no início, ou a deleção de colunas de dados.

Nas alterações que fiz, respeitei o rito de criar coluna A (auxiliar), concatenar, passar para a planilha TXT, apagar a coluna A, e exportar, mas essa inserção e deleção de coluna não é necessária. A macro que CONSOLIDA pode já pegar de cada uma das colunas os dados, concatenar, e colocar na sua coluna A, diretamente, sem criar a A nas planilhas de dados. Pode até já exportar, e essas 5 macros ficariam em uma só. Na verdade nem precisa colocar em sua coluna A; pode exportar para o arquivo TXT diretamente, tudo num só clique.

Se dessa forma você acha que fica melhor, avise que eu altero.

Jimmy San Juan
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por LEO2004
Posts Avatar
#46374
Jimmy Muito obrigado pelo retorno..
Os códigos que você colocou ficaram ótimos..
Só preciso de mais ajuda ..
fiz um teste, importei um arquivo completo .. e cliquei em consolidar e deu erro de tempo execução 9..
então fiz como tava fazendo, gerei as colunas e concatenei, na hora consolidar ele consolidou somente ate uma parte e parou..
No mais ficou muito bom..
Teria como me ajudar nesses detalhes?

Obrigado!!
Avatar do usuário
Por Jimmy
Avatar
#46378
Bom dia,

Tem como ajudar sim, mas preciso da planilha que deu erro, pra ver em que linha deu, qual o conteúdo da planilha, etc.
Tente reduzir a planilha o suficiente pra postar aqui, mas com dados suficientes pra dar pau.
fiz um teste, importei um arquivo completo .. e cliquei em consolidar e deu erro de tempo execução 9..
Antes de clicar em CONSOLIDAR tem que incluir a coluna, concatenar, etc...
O que eu havia dito é que deixei como estava, mas há a possibilidade de juntar as macros que cria a coluna, a que gera o concatenamento, a que consolida, a que exporta e a que deleta a coluna A, tudo numa só. Eu não fiz isso porque não sei se há algum motivo pra você fazer passo a passo. Posso fazer se você achar que fica melhor.

Jimmy San Juan
Avatar do usuário
Por LEO2004
Posts Avatar
#46384
bom dia Jimmy,

Segue anexo a planilha..
Ahh lembro que eu não sei se é o numero de dados.. pois a planilha seria para gerar arquivos bem grandes..
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por Jimmy
Avatar
#46388
Leo,

O erro ocorreu porque a quantidade de cores diferentes para colorir a fonte da coluna B, se esgotou, porque a quantidade de cores é inferior à quantidade de planilhas. Mudei pra começar a repetir as cores, caso necessário.

Pergunta: você precisa que as cores vão mudando, e cada planilha tenha uma cor diferente das demais, ou basta usar apenas vermelho, azul e verde (só exemplo) alternadamente para separar visualmente o que vem de uma planilha e o que vem da outra?

Você pensou a respeito de juntar as 5 macros numa só?
Partimos pra isso?

Outro assunto importante: eu usei a linha 1 das planilhas de dados, para marcar a coluna auxiliar A inserida. Isso permitiu saber se essa coluna já havia sido inserida ou não, evitando dupla inserção. O mesmo para deleção.
Você usa a linha 1 para alguma coisa? Porque se usa, e nas planilhas que enviou ela está em branco apenas por ser uma planilha de testes, teremos que mudar essa lógica.

Jimmy San Juan
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por LEO2004
Posts Avatar
#46392
Olá Jimmy, Primeiramente muito obrigado.

E respondendo a perguntas :

1ª Resp: as cores de inicio era uma mapeação, porém agora pode ser aleatoriamente..
2ª Resp: Podemos juntar as 5 em uma 1 só..
3ª Resp: A linha de cima seria para um cabeçalho para um filtro com ajudar a selecionar as informações..

Mas tenho uma dúvida teria como ter um contador de registros?
tipo assim existe uma aba 9900| as informações dessa aba e de totalizar a quantidade de cada registro existe..

exemplo:

|9900 |C100 |28323 -> esse numero é quantidade de c100 que tem arquivo..

teria como criarmos isso?
nem que fosse um botão de comando..


obrigado!!
Avatar do usuário
Por LEO2004
Posts Avatar
#46396
Jimmy esbarrei num problema maior kkk
Desculpa ..
Eu gerei o arquivo tudo certo..
Mas eu na hora de projetar a consolidação eu não fiz mapeamento de hierarquia.. ou seja nos registros c100 depois c170 depois c190 depois c191..
Por fim não como fazer isso... :o :cry:
Avatar do usuário
Por Jimmy
Avatar
#46399
Leo, vamos resolver tudo, mas prefiro passo a passo pra coisas irem ficando mais sedimentadas antes de iniciar outra etapa.

Vou iniciar juntando as macros, pra depois fazer o resto, porque se fizer as alterações nas macros separadas, quando eu juntar todas dará mais trabalho.

Pergunta: você precisa que seja mantida a relação completa de registros, aquela que é montada na planilha TXT ORIGINAL, mesmo após gerar o arquivo TXT, ou só te interessa o arquivo TXT gerado, e essa relação completa pode ser apagada?

Jimmy
Avatar do usuário
Por LEO2004
Posts Avatar
#46401
Jimmy,

Sim, prefeito vamos passo a passo..
Respondendo pergunta. Sim, só me interessa o TXT gerado.. Eu so mantive o montado na Planilha original para poder ter uma maneira de exportá-la..

Porém tava olhando que se traze-se na importação na ultima coluna dos Registros que comecem com a letra "C" o numero da Nota que se referem , ficaria mais fácil .. por que futuramente eu iria precisar dessa informação. Exemplo abaixo..

|C190|0|2102|12|461,14|461,14|55,34|0|0|0|0| NUMERO DA NF|


O numero da nota deixei enter "#" caso precise do arquivo txt, esta em anexo..
|C100|1|0||65|00|2|#59978#|43190394290483000150650020000599781000599784|26032019|26032019|46,97|2|0|0|46,97|9|0|0|0|9,91|1,77||||||||

Obrigado amigo!!
Avatar do usuário
Por Jimmy
Avatar
#46404
Esqueceu de anexar o TXT de entrada.
Avatar do usuário
Por LEO2004
Posts Avatar
#46405
Mil desculpas..
segue anexo..
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por Jimmy
Avatar
#46410
Já juntei as macros.

Uma olhada que tamanho ficou a macro! Apaguei todas as outras.

Vou olhar o arquivo de importação.

Enquanto eu olho, explica melhor isso, pois não entendi:
Porém tava olhando que se traze-se na importação na ultima coluna dos Registros que comecem com a letra "C" o numero da Nota que se referem , ficaria mais fácil .. por que futuramente eu iria precisar dessa informação. Exemplo abaixo..
e isso também:
Mas eu na hora de projetar a consolidação eu não fiz mapeamento de hierarquia.. ou seja nos registros c100 depois c170 depois c190 depois c191..
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por Jimmy
Avatar
#46411
Esse arquivo é de importação (ele entra na planilha) ou de exportação (ele é gerado pela planilha)?
Avatar do usuário
Por LEO2004
Posts Avatar
#46413
ele é importado para planilha ..
depois ele exportar um igual..
Avatar do usuário
Por LEO2004
Posts Avatar
#46421
Porém tava olhando que se traze-se na importação na ultima coluna dos Registros que comecem com a letra "C" o numero da Nota que se referem , ficaria mais fácil .. por que futuramente eu iria precisar dessa informação. Exemplo abaixo..

Resposta : Lhe encaminhei uma imagem tentando explicar melhor...


Mas eu na hora de projetar a consolidação eu não fiz mapeamento de hierarquia.. ou seja nos registros c100 depois c170 depois c190 depois c191..
Se voce abrir o txt voce vai ver que segue uma ordem C100 depois vem o C170 depois C190 e assim por diante.. ele deve seguir essa sequencia de informações..
Avatar do usuário
Por LEO2004
Posts Avatar
#46422
segue a imagem .. que faltou ESTA COMPACTADA PARA PODER ENCAMINHAR
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord