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
Por nmcaslb
Posts
#49382
Bom dia
Precisava de uma ajuda para a criação de uma macro. No ficheiro que segue em anexo queria retirar para outra folha de cálculo tudo o que na coluna B tiver os códigos 2, 8, 9, 10 e 11. As colunas que quero que passem para outra folha são, por esta ordem, Coluna A, Coluna C, Coluna B, Coluna G, Coluna H, Coluna I, Coluna J, Coluna AM, aqui fica uma coluna em branco, Coluna M, Coluna O e finalmente Coluna N. Quero que só passe a informação, quando na coluna K estiver algum valor, se estiver vazia essa linha não passa para a nova folha. Depois há dois sectores, no sector que vai do início até à linha 2998 os valores das colunas M e N têm que passar conforme estão, no sector entre as linhas 3003 e 3104 os valores das colunas M e N têm que passar a negativo. Todas as informações que passem para outra folha têm que ser como texto, ou seja as fórmulas devem ficar desativadas na passagem.
Se tiverem dúvidas digam-me que fazemos passo a passo.
Obrigado pela ajuda e cumprimentos
Nuno
Você não está autorizado a ver ou baixar esse anexo.
Por eduardogrigull
Posts
#49390
Veja se funcionou! Está meio difícil de entender, mas deve estar certo, ou praticamente... Coloquei um botao, e o resultado na outra planilha "Resultado"
Você não está autorizado a ver ou baixar esse anexo.
Por nmcaslb
Posts
#49433
Boa tarde
Antes de mais obrigado pela ajuda.
Acho que está tudo certo, queria pedir mais algumas alterações, quando for possível. Queria que na folha do resultado fosse ordenado pela coluna C e se possível com uma linha de intervalo entre os diferentes códigos. Depois queria que do código 2 só passasse para a folha do resultado o que estiver diferente de Portugal na coluna D da folha de origem. Em relação a esse código também há mais algumas colunas que gostaria que passassem para a folha de resultado, mas se calhar tratamos depois.
Muito obrigado e cumprimentos

Nuno
Por nmcaslb
Posts
#49461
Bom dia. Penso que há algo errado com esta nova macro, visto que quando ele passa a informação para a folha do resultado, ele fica com menos linhas do que tem a folha de origem. Também em relação à ordenação aqui dá um erro e não faz. Podes verificar por favor?
Queria pedir-te para em vez de colocares o resultado numa folha ao lado, se era possível abrir um livro novo.
Obrigado e cumprimentos
Nuno
Por eduardogrigull
Posts
#49474
O resultado está indo na folha ao lado, e obviamente tem menos linhas do que a folha de origem, pois segui os critérios que você pediu. A não ser que você se expressou mal.
Quanto ao erro ao ordenar, qual o erro?
Qual versão do Excel você usa?
Por nmcaslb
Posts
#49510
Boa tarde
Mais uma vez obrigado pela ajuda.
Eu estive a verificar e realmente tens razão, em relação às linhas está tudo certo, mas aparecem valores negativos que deviam estar positivos, penso que a separação é que está no sítio errado. Segue uma outra folha com o resultado final e com a linha que dá erro na macro. Na tua folha do resultado eu pintei a vermelho o que realmente tem que ser negativo.
Depois queria que na parte relativa ao código 2 colocasses as seguintes colunas, por esta ordem da folha de origem: A, C, B, G, H, I, J, M, N, O, P, Q, V, AA, AB, AC, D.
Obrigado e cumprimentos
Nuno
Você não está autorizado a ver ou baixar esse anexo.
Por eduardogrigull
Posts
#49519
Testei aqui e parece ter funcionado. Os valores que você disse que estavam errados na verdade não estavam, eles atendiam ao critério que voce pediu desde o início. Ao reordenar está funcionando, a não ser que tenha alguma incompatibilidade de versão de Excel. Aliás, qual sua versão do Excel?
Você não está autorizado a ver ou baixar esse anexo.
Por nmcaslb
Posts
#49534
A minha versão de excel é de 2010. Tu colocaste todas as colunas que te pedi mas para todos os códigos e eu só queria para o código 2. Os códigos 8, 9, 10 e 11 fica como estavam, ou seja com as colunas A, C, B, G, H, I, J, AM, Coluna em branco, M, O, N, se for possível. Para o código 2 não é necessária a coluna em branco.
Obrigado e desculpa pelo trabalho que estou a dar.
Nuno
Avatar do usuário
Por Jimmy
Avatar
#49567
Olá Nuno,

Acho que seria oportuno juntar tudo o que foi pedido, o que foi alterado, o que foi acrescentado posteriormente, etc, em um novo descritivo da sua necessidade. Seria bom passar o procedimento a limpo.

Poderia aproveitar e definir qual o critério para passar as colunas M e N para negativo. Quero dizer um critério que não se baseie no número da linha, porque essa informação pode mudar com facilidade ao inserir mais linhas acima. Esse critério poderia ser o conteúdo da coluna "I"? Por exemplo, o que estiver entre "TOTAL FACTURAÇÃO" e "TOTAL N/CRÉDITO"?

Jimmy San Juan
Editado pela última vez por Jimmy em 28 Out 2019 às 11:50, em um total de 2 vezes.
Por nmcaslb
Posts
#49576
Olá Jimmy
Então vou tentar explicar da melhor forma o que pretendo. No ficheiro inicial pretendo que passe para um ficheiro novo tudo o que esteja preenchido na coluna B com os códigos 2, 8, 9, 10 e 11, mas só as linhas que contenham informação na coluna K, as que estiverem em branco não são para passar. No código 2 (coluna B) pretendo que passe para o tal ficheiro novo as colunas A, C, B, G, H, I, J, M, N, O, P, Q, V, AA, AB, AC, D, por esta ordem, mas só as linhas que, na coluna D estiverem diferentes de PORTUGAL. Dos códigos 8, 9, 10 e 11 (coluna B) quero que passem as colunas A, C, B, G, H, I, J, AM, Coluna em branco, M, O, N também por esta ordem. Em relação aos valores positivos ou negativos, quero que tudo o que esteja acima do TOTAL FACTURAÇÃO passe a positivo (colunas M e N) e tudo o que esteja entre o TOTAL FACTURAÇÃO e TOTAL N/CRÉDITO passa a negativo para a nova folha (colunas M e N). Quando a informação estiver no novo ficheiro pretendo que seja ordenada pela coluna C (Coluna B da origem) e entre cada um dos códigos 2, 8, 9, 10 e 11 fique uma linha em branco.
Penso que está tudo, se mesmo assim houver alguma dúvida diz que eu esclareço.
Obrigado e cumprimentos
Nuno
Editado pela última vez por nmcaslb em 28 Out 2019 às 11:31, em um total de 1 vez.
Avatar do usuário
Por Jimmy
Avatar
#49579
Nuno,

E aquela parte que tem que constar "Portugal". Acho que esqueceu dela.

Certifique-se de que essa sua última descrição contemple tudo, pois a proposta é que ela seja totalmente suficiente para rescrever a necessidade.

Jimmy San Juan
Editado pela última vez por Jimmy em 28 Out 2019 às 11:51, em um total de 1 vez.
Por nmcaslb
Posts
#49638
Jimmy
Já editei o pedido, penso que agora está tudo.
Obrigado e cumprimentos
Nuno
Avatar do usuário
Por Jimmy
Avatar
#49642
Bom dia Nuno,

Teste a planilha anexa e veja se te atende

Notei que há 2 tipos de cópias de colunas: a do código 2, e a dos demais códigos. As colunas copiadas são em parte as mesmas, e em parte diferentes. Na planilha destino elas ficam assim:
Código: Selecionar todos
Código 2:   A    C    B    G    H    I    J    M    N    O    P    Q    V   AA   AB   AC    D
Demais  :   A    C    B    G    H    I    J   AM    -    M    O    N
Dá pra notar que os valores das colunas M, N, O, Q e AM não ficam sempre uns em baixo dos outros. Isso impede que se coloque cabeçalhos nas colunas.
Pensei que se fizermos um pequeno ajuste o cabeçalho já seria possível, poque todos os valores de M, por exemplo, estarão na mesma coluna, independente se o código é 2 ou outro.
Código: Selecionar todos
Código 2:   A    C    B    G    H    I    J    -    -    M    O    N    P    Q    V   AA   AB   AC    D
Demais  :   A    C    B    G    H    I    J   AM    -    M    O    N
Se essa nova planilha for usada para importação de dados em outro sistema, ai tanto os cabeçalhos quanto a mudança no leiaute das colunas é desnecessário.

Se esta mensagem colabora para a solução do problema, peço que dê um Like, clicando no botão com o "positivo", acima e a direita.

Jimmy San Juan
Você não está autorizado a ver ou baixar esse anexo.
Por nmcaslb
Posts
#49657
Jimmy
Eu preciso dessa macro mas o resultado é para exportar para um ficheiro previamente construído, por isso não há necessidade de cabeçalhos.
Verifiquei o resultado e está tudo a funcionar corretamente, só faltou uma coisa. Sempre que na coluna K do ficheiro de origem estiver sem nada, essa linha não passa para a folha do resultado e neste momento está a passar, de resto está tudo impecável.
Quando estiver esse ponto vou tentar adaptar a macro ao meu ficheiro para ver se funciona tudo bem e digo-te.
Mais uma vez muito obrigado pela ajuda.
Cumprimentos
Nuno
Avatar do usuário
Por Jimmy
Avatar
#49658
Olá Nuno,

Sim, a variável CoK representa o conteúdo da coluna K.
A linha:
CoK = Pl1.Range("F" & Lin1).Value
de ser alterada para:
CoK = Pl1.Range("K" & Lin1).Value

Erro de digitação... Tem conhecimento de macro para fazer essa alteração?

Jimmy San Juan
Editado pela última vez por Jimmy em 28 Out 2019 às 21:10, em um total de 1 vez.
Por nmcaslb
Posts
#49660
Jimmy
Já alterei a macro, já está a funcionar bem, vou tentar adaptar agora ao meu ficheiro, depois dou feedback.
Obrigado e um abraço
Nuno
Avatar do usuário
Por Jimmy
Avatar
#49675
Ok, se precisar de ajuda na adaptação, avise.

Jimmy San Juan
Por nmcaslb
Posts
#49686
Jimmy
Já adaptei a macro ao meu ficheiro e está a funcionar. Excelente mesmo, muito obrigado pela ajuda, grande abraço.
Nuno
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