Kako,
Boa noite!
Infelizmente, não vou poder resolver essa! Veja, o primeiro código que desenvolvi (no primeiro post) foi obedecendo uma lógica toda voltada para o tipo de problema que você havia pedido (a lógica pedida era que quando um usuário digitasse alguma coisa em D13 e tivesse um código de produto em C2, desde que também tivesse algo em B13 em C13, que o código deveria procurar pelo número desse código lá na coluna A da Plan2 e se o encontrasse, que deveria levar para as coluna S, T e U os valores de B13, C13 e D13 da Plan1). Isso eu fiz.
Então, você pegou esse código , desenvolvido com essa lógica de programação, fez adaptações e o que está colocado aqui nesse arquivo que você enviou é bem diferente da lógica inicial, pois, inicialmente, era apenas o que está comentado acima. Nesse, quando o usuário digitar o código em C2, entrar com valores em B13, C13 e finalmente em D13 e teclar ENTER, além de levar os dados para as células S, T e U correspondentes em Plan2, ele sequer valida os dados do outro autorizador (E13 a G13) pois não foi desenvolvido e nem adaptado para essa finalidade. Simplesmente, na sua adaptação, tudo é copiado para a Plan2 (inclusive os dados de E13 a G13) e outros dados da Plan1.
Depois você pediu um código onde cada autorizador pudesse autorizar seu bloco de células separadamente (individualmente). Da mesma forma eu desenvolvi um código obedecendo essa lógica (para essa finalidade). Agora, você quer juntar as duas coisas e elas são incompatíveis. Por isso que deu erro aí quando você tentou juntar as duas coisas. Como eu disse no meu último post, o erro foi causado pelo fato de que o VBA não aceita duas rotinas com o mesmo nome do mesmo módulo, principalmente, quando essas rotinas são procedures próprias criadas pelos eventos dos objetos nativos dele (caso do evento WorkSheet_Change). Detalhe: da forma que a lógica para os dois casos foi desenvolvida, não é possível simplesmente fazer inserções de algumas linhas do código novo no código antigo. Não bate uma coisa com a outra. É preciso repensar todo o projeto e recomeçar do zero.
Programação é realmente uma coisa muito complexa pois o computador, infelizmente, ainda é completamente burro e só faz o que nós mandamos ele fazer. Por essa razão é que, antes de se iniciar qualquer projeto, é necessário que se desenhe (mesmo que mentalmente) o algoritmo desse projeto para que o mesmo tenha começo, meio e fim e possa ser desenvolvido a contento sem retrabalhos ou atropelos.
Por exemplo: se você estivesse dirigindo e percebesse que um dos pneus do carro furou, qual seria o algoritmo desse projeto (trocar o pneu furado de um carro)? Muita gente já começaria dizendo: Eu tiraria o pneu do estepe do porta-malas, depois tiraria o pneus furado do carro e colocaria o pneu de estepe no carro. Bom... teoricamente, para humanos, isso pode até ser inteligível e talvez até dê certo, dependendo da pessoa com quem estamos tratando. Todavia, para o microprocessador do computador não é assim. Primeiro, você teria que parar o carro no acostamento, puxar o freio de mão, soltar o cinto de segurança, abrir a porta do motorista, tirar a chave da ignição, descer do carro, caminhar até a parte de trás do carro, colocar a chave da fechadura do porta-malas, levantar a tampa do porta-malas e por aí vai... até conseguir realizar o projeto inteiro e sair tranquilamente com o carro para uma borracharia para consertar o pneu.
Desculpe a longa explicação, todavia, necessária para que entenda porque não tenho como ajudar nesse caso. Para tanto, repito: você precisa fazer um passo-a-passo detalhado de todo o processo de forma muito clara e objetiva Pode ser inclusive numerado. Exemplo de um algoritmo simplório para somar dois números:
1 - Na célula A2 tenho o número 2
2 - Na célula A3 tenho o número 3
3 - Quero que na célula A4 o Excel coloque o resultado da soma do valor de A2 + A3.
Sugiro que você repense detalhadamente seu projeto, faça o algoritmo dele minuciosamente (mesmo que isso acarrete em muitas linhas) e abra um novo tópico só para isso. O projeto (mesmo que seja divido em processos ou partes menores) precisa ser pensado integralmente e ter começo, meio e fim. Lembre-se de que tudo deve está muito claro na sua mente pois você conhece todo o processo. Todavia, para outros (inclusive para mim), tudo precisa ser claro e detalhado. Até hoje, por exemplo, eu não entendi corretamente a questão de dois autorizadores, em que momento cada um deve autorizar, se eles autorizam em conjunto ou separado, se autorizam em momentos distintos e por ai vai...
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 : 18/06/2018 4:19 pm