Página 1 de 1

Condição If

Enviado: 13 Nov 2018 às 09:04
por Wieniawski
Amigos, preciso de uma ajuda para colocar uma condição if na minha planilha anexa. Esta planilha faz um calculo aonde a soma da coluna H será sempre a mesma quantidade da célula J7, independente da quantidade de lotes. Porém quando existe somente 1 lote ela deveria repetir na célula H7 o mesmo valor da J7, só que não ocorre isso.

Condição If

Enviado: 14 Nov 2018 às 10:43
por Wieniawski
Eu consegui colocar uma condição, deu certo, porém agora gostaria de colocar um comando para limpar os lotes que ficaram sem peso (neste exemplo do G11 para baixo), o que eu havia feito estava travando o excel , pois excluía todas as linhas abaixo da última célula preenchida da coluna H (neste caso a H10), até o fim da planilha. Alguém teria uma sugestão?

abç!

Re: Condição If

Enviado: 14 Nov 2018 às 10:44
por Wieniawski
Desculpem, faltou o anexo atualizado! Agora foi.

Re: Condição If

Enviado: 14 Nov 2018 às 13:53
por osvaldomp
O código abaixo exclui os Lotes sem peso.
Código: Selecionar todos
Sub ExcluiLotesSemPeso()
  Range(Cells(Rows.Count, 8).End(3).Offset(1, -1), Cells(Rows.Count, 7).End(3)).Value = ""
End Sub
Se você não conseguir utilizar no seu código o comando acima que exclui os Lotes, então instale o código acima em um módulo comum e coloque o nome da macro ao final do seu código, assim :
Código: Selecionar todos
...
ExcluiLotesSemPeso
End Sub
obs. em relação ao seu código, me parece que é possível elaborar um código com 4 a 5 linhas que poderá fazer o trabalho, em lugar das 20+ linhas do seu código, inclusive sem utilizar "Select" e sem a gambiarra de colocar "xxx" nas células das primeiras linhas das colunas G:H. Se você tiver interesse então explique com exatidão o que você quer fazer.

Re: Condição If

Enviado: 14 Nov 2018 às 14:46
por Wieniawski
Ficou perfeito osvaldomp, era exatamente o que eu precisava, a soma da coluna H exatamente igual ao conteúdo da célula J7, eliminando no final os lotes sem peso, está funcionando perfeitamente, mas gostaria de ver um código mais simples como vc menciona a título de aprendizado.Muito Obrigado!!

Re: Condição If

Enviado: 14 Nov 2018 às 15:13
por osvaldomp
osvaldomp escreveu: Se você tiver interesse então explique com exatidão o que você quer fazer.

Re: Condição If

Enviado: 15 Nov 2018 às 09:13
por Wieniawski
Então vamos lá:

Estes dados são lotes de um produto que preciso vender (são extraídos do SAP), dependendo do estoque podem aparecer de 1 até 10 lotes (ou mais), ao lado dos lotes tem o peso, no primeiro lote até o penúltimo são saldos de estoque, então preciso completar a venda com o saldo do último lote (então o peso do último tem que ser a venda total (J7), menos a soma dos demais. Feito isso vou devolver esta informação ao SAP com o peso corrigido. Caso ainda não estou conseguindo ser muito claro, a gente vai se falando :oops:

Re: Condição If

Enviado: 15 Nov 2018 às 14:22
por osvaldomp
Veja se entendi corretamente.
A primeira linha do código abaixo insere o saldo do Peso no lugar do penúltimo Peso, e a segunda linha exclui os Lotes excedentes.
Código: Selecionar todos
Sub InsereSaldoExcluiLotesSemPeso()
 Cells(Rows.Count, 8).End(3) = IIf([H8] = "", [J7], [J7] - Application.Sum(Range("H7:H" & Cells(Rows.Count, 8).End(3)(0).Row)))
 Range(Cells(Rows.Count, 8).End(3).Offset(1, -1), Cells(Rows.Count, 7).End(3)).Value = ""
End Sub

Re: Condição If

Enviado: 15 Nov 2018 às 19:14
por Wieniawski
É isso mesmo, ficou perfeito, exatamente como eu preciso e com poucas linhas de comando, show de bola!

Mais uma vez meu muito obrigado osvaldomp, matou a pau! :lol: