Página 1 de 1

Formula para verificação

Enviado: 15 Jan 2022 às 13:02
por HelderFernandes
Boa tarde,
Estou a tentar encontrar ou saber se é possivel uma formula para cruzar os produtos entregues com os expedidos.
Será algo do tipo VLOOKUP ou XLOOKUP mas em que existe uma condição, não posso colocar nenhuma formula na folha "Expedição" pois este ficheiro é enviado por um externo e como são varias pessoas a fazer a picagem não posso editar essa folha. Apenas posso colocar formulas na folha "Picagem"
Em resumo que preciso é uma formula que eu picando os códigos na folha "Picagem" na coluna A de dê o retorno para a folha "Expedição" coluna C se for OK, e colocar o OK e a formatação da célula, e na coluna D se for não ok, e colocar o NOK e a formatação da célula também.
Assim de forma a conseguir cruzar o que "pico" com o que foi expedido. Isto por os produtos vem todos mistutados e verificar 1 a 1 demora um tempão.
Envio em anexo um exemplo. Podem ajudar pf.
Obrigado

Re: Formula para verificação

Enviado: 15 Jan 2022 às 15:21
por osvaldomp
Olá, @HelderFernandes .

Experimente:

=SE(CONT.VALORES(DESLOC(Expedição!C$1;CORRESP(A2;Expedição!A$2:A$6);;;2))=0;"não picado";SE(ÍNDICE(Expedição!C$2:C$6;CORRESP(A2;Expedição!A$2:A$6;0))=0;"NOK";"OK"))

ou

=SE(ÍNDICE(Expedição!C$2:C$6;CORRESP(A2;Expedição!A$2:A$6;0))<>0;"OK";SE(ÍNDICE(Expedição!D$2:D$6;CORRESP(A2;Expedição!A$2:A$6;0))<>0;"NOK";"não picado"))

Re: Formula para verificação

Enviado: 15 Jan 2022 às 15:35
por HelderFernandes
@osvaldomp,
osvaldomp escreveu:Olá, @HelderFernandes .

Experimente:

=SE(CONT.VALORES(DESLOC(Expedição!C$1;CORRESP(A2;Expedição!A$2:A$6);;;2))=0;"não picado";SE(ÍNDICE(Expedição!C$2:C$6;CORRESP(A2;Expedição!A$2:A$6;0))=0;"NOK";"OK"))

ou

=SE(ÍNDICE(Expedição!C$2:C$6;CORRESP(A2;Expedição!A$2:A$6;0))<>0;"OK";SE(ÍNDICE(Expedição!D$2:D$6;CORRESP(A2;Expedição!A$2:A$6;0))<>0;"NOK";"não picado"))
Obrigado pela resposta, mas em que celula coloco a formula, sendo que na coluna A vou inserir os dados da picagem?

Re: Formula para verificação

Enviado: 15 Jan 2022 às 16:04
por osvaldomp
Coloque a fórmula onde você quer o resultado.

Com base no seu exemplo, eu suponho que você quer o resultado a partir de B2 da planilha Picagem.

Se sim, então cole uma cópia da fórmula naquela célula e em seguida estenda a fórmula pela coluna.

Re: Formula para verificação

Enviado: 15 Jan 2022 às 16:19
por HelderFernandes
Boas,
Eu pretendo o resultado na folha "Expedição" mas não posso colocar lá nehuma formula, pois não posso mexer nesse ficheiro.
O resultado da picagem na folha "Picagem" coluna A é para aparecer na imagem que envio.
Imagem

Re: Formula para verificação

Enviado: 15 Jan 2022 às 16:40
por osvaldomp
Se entendi corretamente, na planilha Picagem você vai lançar manualmente o Código na coluna A e o Estado na coluna B, e então quer replicar, sem o uso de fórmulas, na planilha Expedição, na coluna C ou na D, conforme o Estado . É isso?

Se sim, nesse caso a solução seria possível somente via macro.

Retorne se no seu caso for viável a utilização de macros, pois precisaremos de mais detalhes sobre a forma de operar.

Re: Formula para verificação

Enviado: 15 Jan 2022 às 16:47
por HelderFernandes
Obrigado pela ajuda,
Sim é mesmo isso mas apenas quero lançar o codigo na coluna A da Picagem e se o codigo estiver na folha Expedição automaticamente colocar o OK na coluna C, e se o codigo não estiver na folha expedição preencher o NOK na coluna D.
Sim posso usa macros.

Re: Formula para verificação

Enviado: 15 Jan 2022 às 17:16
por osvaldomp
Ok, entendi.

Dúvidas:
1. esse arquivo irá circular por vários usuários e cada um deles terá permissão para lançar o Código na coluna A da Picagem e assim provocar o lançamento na planilha Expedição?

2. em que momento você quer replicar OK ou NOK na planilha Expedição:
a) automaticamente ao inserir um novo Código na coluna A? (a adoção desta alternativa irá depender do tipo da sua resposta para a questão acima) ou
b) após inserir vários Códigos na coluna A e então acionar manualmente (via um botão na planilha, por exemplo) a macro para replicar ?

Re: Formula para verificação

Enviado: 15 Jan 2022 às 17:35
por HelderFernandes
osvaldomp escreveu:Ok, entendi.

Dúvidas:
1. esse arquivo irá circular por vários usuários e cada um deles terá permissão para lançar o Código na coluna A da Picagem e assim provocar o lançamento na planilha Expedição?

>O utilizador que começe o ficheiro vai processar até ao final, mas todos os dias pode ser um utilizador diferente. De referir que o ficheiro expedição tem origem externa, vai ser depois inserido neste para fazer o controlo

2. em que momento você quer replicar OK ou NOK na planilha Expedição:
a) automaticamente ao inserir um novo Código na coluna A? (a adoção desta alternativa irá depender do tipo da sua resposta para a questão acima)

> A solução a é a ideal, mas se não for possivel então a b
ou
b) após inserir vários Códigos na coluna A e então acionar manualmente (via um botão na planilha, por exemplo) a macro para replicar ?

Re: Formula para verificação

Enviado: 15 Jan 2022 às 20:06
por osvaldomp
HelderFernandes escreveu: 15 Jan 2022 às 16:47
... apenas quero lançar o codigo na coluna A da Picagem e se o codigo estiver na folha Expedição automaticamente colocar o OK na coluna C ~~> ok

... e se o codigo não estiver na folha expedição preencher o NOK na coluna D. ~~~> se o Código não estiver na Expedição, antes de preencher NOK na coluna D, a macro deverá lançar o Código não existente na coluna A da Expedição e só depois preencher NOK na linha correspondente, é isso?
O lançamento do Código não existente na Expedição será feito pela macro na primeira linha vazia abaixo da tabela?


Qual o significado de OK e de NOK em B1 e B2 da planilha Picagem, que você colocou no seu exemplo? Foram colocados manualmente pelo usuário? Ou você quer que a macro preencha aqueles dados?

Re: Formula para verificação

Enviado: 15 Jan 2022 às 20:51
por osvaldomp
Teste primeiro esta solução.

Instale uma cópia do código abaixo no módulo da planilha Picagem.
Para acessar o módulo clique com o direito na guia daquela planilha e escolha "Exibir Código".
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim cod As Range
  If Target.Count > 1 Then Exit Sub
  If Target.Column > 1 Or Target.Value = "" Then Exit Sub
  Set cod = Sheets("Expedição").[A:A].Find(Target.Value, lookat:=xlWhole)
  If Not cod Is Nothing Then
   cod.Offset(, 2).Value = "OK"
   Target.Offset(, 1).Value = "OK"
  Else: Sheets("Expedição").Cells(Rows.Count, 1).End(3)(2) = Target.Value
   Sheets("Expedição").Cells(Rows.Count, 1).End(3)(1, 4).Value = "NOK"
   Target.Offset(, 1).Value = "NOK"
  End If
End Sub
#
funcionamento - ao inserir manualmente um Código na coluna A da planilha Picagem, se o Código inserido estiver duplicado na planilha Expedição, então a macro irá colocar "OK" na coluna C da planilha Expedição na linha em que o Código estiver duplicado e "OK" à direita do Código inserido; se não estiver duplicado, então a macro irá lançar o Código na primeira linha vazia da coluna A e "NOK" na coluna D da planilha Expedição e "NOK" à direita do Código inserido.

Re: Formula para verificação

Enviado: 26 Jan 2022 às 18:50
por HelderFernandes
Muito Obrigado! Serve para o que eu quero.