Notifications
Clear all

diferença entre duas colunas e retorno na mesma

9 Posts
2 Usuários
0 Reactions
1,659 Visualizações
(@cisneiro)
Posts: 75
Trusted Member
Topic starter
 

Boa tarde, nesta planilha existe um botão que faz o seguinte a partir da linha 2:( valores da coluna A - valores da coluna B) e o resultado é retornado na própria coluna A.

Como criar uma outra macro que faça a mesma coisa só que a partir da linha 4 e com as colunas E e I respctivamente, ou seja: ( valores da coluna E - valores da coluna I) e o resultado retornando na própria coluna E).

 
Postado : 08/05/2018 12:08 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Cisneiro,

Boa tarde!

Assim.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 08/05/2018 12:12 pm
(@cisneiro)
Posts: 75
Trusted Member
Topic starter
 

obrigado wagner funcionou nesta. a minha duvida é porque na outra planilha as colunas são as mesmas , alinha de inicio é a mesma e não funciona, zera a coluna inteira, como pode isso? a lógica é a mesma.

 
Postado : 08/05/2018 12:20 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

A lógica não é a mesma e eu não sei o que você fez na outra. Pra começo de conversa, na outra, na coluna I existem zeros. Então, jamais poderia ser a mesma lógica.

Este simples exemplo que fiz e você enviou novamente, verifica se I é deferente de vazio (""). Se for, então, enquanto existir algo na coluna I ele vai pegar o valor de E e subtrair o que existe em I.

No seu outro arquivo, não sei porque, quando você digita algo no intervalo mesclado I2:J2 esse valor vai automaticamente para a coluna I. Isso eu não sei porque... Então, fica uma linha na coluna I com valor e as demais tudo com zero. Se aplicar a mesma lógica desse simples exemplo, o que vai acontecer? O código vai encontrar em cada linha da coluna I um valor zero (que é diferente de "" (vazio) e vai rodar até o final, subtraindo da coluna E o valor de I.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 08/05/2018 12:29 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Veja, acabei de baixar seu arquivo aqui e inseri, nas células mescladas I2:J2 o valor 100,00. Automaticamente, apareceu na coluna I, linha 6 o valor 10.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 08/05/2018 12:33 pm
(@cisneiro)
Posts: 75
Trusted Member
Topic starter
 

wagner, para ficar mais fácil a compreensão, vou explicar como será utilizada a planilha no dia a dia na prefeitura do rj.

a prefeitura necessita de vários itens para suas instalações , estes por sua vez tem um nível de prioridade. a prefeitura recebe verbas de varias fontes, minha função é saber: com o dinheiro que entrou, quais itens posso comprar obedecendo a ordem de prioridade que varia de 1 a 5.

então por exemplo: a prefeitura recebeu do gov. federal uma verba de 500 reais. Esses 500 entra na célula verde "I2". o que eu preciso no momento:

1 - um código que dilua automaticamente o valor inserido em "I2" ao longo da lista de itens até zerar o saldo. na planilha ja tem uma fórmula ,mas percebi que tem um erro.

2 - toda vez que eu processar a compra dos itens, preciso que a coluna da quantidade necessária seja atualizada, pois se no incio eu precisava de 10 unid., e ao receber a verba, comprei 2 unid., então a nova quantidade necessária seria 8 unid. (coluna E - coluna I)

3 - o chefe deseja registrar tudo que foi comprado, por isso preciso do histórico, e copiando a linha onde há entrada de item consigo isso, pois terei o nome da entidade que cedeu a verba , quantidade comprada e tudo mais.

wagner no primeiro código solicitado acima, não precisa fazer com que ele busque as prioridades 1 , se vc conseguir fazer com que o valor seja utilizado na ordem em que os itens forem aparecendo , já está ótimo. porque ai eu uso filtro na coluna prioridade, então quem tiver prioridade 1 já ficará no topo automaticamente. o pank é fazer o valor ser gasto ao longo da lista de forma automática até zerar ou restar um saldo que não dê pra comprar nada.

o ideal seria o código 2 junto com o 3. ou seja, processa as compras(col E - col I) e já gera o histórico. ah e depois apagar "I2"(célula verde, onde entra a verba).

Meu amigo , muito obrigo pela sua atenção, não sei se seria possível explicar melhor, vê o que pode fazer, qualquer ajuda será de grande valia.

 
Postado : 08/05/2018 12:39 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Assim, alterei o IF para que ele verifique a coluna I quando for diferente de zero (0) o código pegar o valor de E e subtrair o valor de I. Colocando o código para rodar no modo de depuração (passo-a-passo) o que ocorre quando aperto no botão Salvar:
1 - O primeiro valor de i (que conta a linha é 4. Então o valor de Range(("I" & i).Value <> 0 nesse momento é Zero. Isso significa que o código não vai entrar dentro do IF nesse momento. vai pular diretamente para o End IF e depois para o Next para verificar o próximo valor de i (que no caso será a linha 5.
2 - do mesmo jeito que no ítem 1 acima, nesse momento que o valor de i é 5 (estamos na linha 5) o valor de Range(("I" & i).Value <> 0 também é 0. Ou seja, não vai entrar no IF e vai pular pro Next.
3 - Agora o valor do i é 6 (linha número 6). o Valor de Range(("I" & i).Value <> 0 agora é 10, portanto, diferente de Zero. O código vai entrar no IF e vai executar a primeira linha que é exatamente a subtração (Range("E" & i).Value = Range("E" & i).Value - Range("I" & i).Value). Nesse momento, a célula E6 que tinha 10 ficou com 0, todavia, aqueles valores que estavam na linha 6 anterior (10 - 10,00 - 100,00 - 100,00 - 10,00 - 0,00) agora passaram para a linha 7 (veja imagem abaixo. Isso eu não sei porque.Desse modo, quantas vezes o código rodar, vai encontrar 10 em I e 10 em E e vai subtrair até o fium e zerar toda a coluna E.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 08/05/2018 12:46 pm
(@cisneiro)
Posts: 75
Trusted Member
Topic starter
 

entendi, desisto, como seria o código para simplesmente subtrair uma coluna pela outra, sem critério nenhum. apenas fazer E-I e retornar o resultado em E?

 
Postado : 08/05/2018 12:55 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Se I não tiver zeros (for vazio), tiver valor somente onde é para subtrair de E, o valor não for se transportando para outras linhas, o código é o que te enviei na minha segunda resposta desse post.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 08/05/2018 1:03 pm