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

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
Por HelderFernandes
#68677
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
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#68678
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"))
HelderFernandes agradeceu por isso
Por HelderFernandes
#68679
@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?
Por osvaldomp
#68680
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.
Por HelderFernandes
#68681
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
Por osvaldomp
#68682
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.
Por HelderFernandes
#68683
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.
Por osvaldomp
#68684
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 ?
Por HelderFernandes
#68685
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 ?
Por osvaldomp
#68690
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?
Por osvaldomp
#68693
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.
HelderFernandes agradeceu por isso
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