Bom dia Holanda22.
Para somar 1, é a fórmula.
=SE(CORRESP(E5;Tabela1[Cupom Fiscal:];0)+1>CONT.VALORES('Plan1 (2)'!$D$6:$D$1005);ÍNDICE(Tabela1[Cupom Fiscal:];CORRESP(E5;Tabela1[Cupom Fiscal:];0);1);ÍNDICE(Tabela1[Cupom Fiscal:];CORRESP(E5;Tabela1[Cupom Fiscal:];0)+1;1))
Teste Logico:
SE(CORRESP(E5;Tabela1[Cupom Fiscal:];0)+1>CONT.VALORES('Plan1 (2)'!$D$6:$D$1005)
Ele verifica onde o código que está na célula E5 está e soma 1 para aplicar o ÍNDICE na linha de baixo, porém se este número for maior que a quantidade de números que existe na coluna D nos registros ele não somará, e o resultado será o próprio código digitado na célula.
Exemplo: se o código for 31254 não há nenhum código abaixo dele, o corresp + 1 será = 4, porém contém somente 3 números na coluna, então a fórmula não faz nada.
Se o corresp + 1 for menor que a quantidade de números da coluna D então aplica o ÍNDICE somando 1 no corresp.
E para diminuir ele verifica se o Corresp será menor que a quantidade de números na base.
Qualquer dúvida só falar, não sei se consegui explicar certinho!
Para incluir mais códigos tem que alterar a fórmula na MACRO.
Sub M01_Mais()
Range("H3").Select
ActiveCell.FormulaR1C1 = _
"=IF(MATCH(R[2]C[-3],'Plan1 (2)'!R6C4:R1005C4,0)+1>COUNTA('Plan1 (2)'!R6C4:R1005C4),INDEX('Plan1 (2)'!R6C4:R1005C4,MATCH(R[2]C[-3],'Plan1 (2)'!R6C4:R1005C4,0),1),INDEX('Plan1 (2)'!R6C4:R1005C4,MATCH(R[2]C[-3],'Plan1 (2)'!R6C4:R1005C4,0)+1,1))"
Selection.Copy
Range("E5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("H3").Select
Selection.ClearContents
Range("E5").Select
End Sub
Sub M02_Menos()
Range("H3").Select
ActiveCell.FormulaR1C1 = _
"=IF(MATCH(R[2]C[-3],'Plan1 (2)'!R6C4:R1005C4,0)+1<COUNTA('Plan1 (2)'!R6C4:R1005C4),INDEX('Plan1 (2)'!R6C4:R1005C4,MATCH(R[2]C[-3],'Plan1 (2)'!R6C4:R1005C4,0),1),INDEX('Plan1 (2)'!R6C4:R1005C4,MATCH(R[2]C[-3],'Plan1 (2)'!R6C4:R1005C4,0)-1,1))"
Selection.Copy
Range("E5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("H3").Select
Selection.ClearContents
Range("E5").Select
End Sub
Aqui está a fórmula para a busca em 1.000 linhas, mas qualquer alteração tem que ser alterado no VBA (inclusão de colunas, alteração do nome das abas).
_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.
Postado : 29/06/2016 5:17 am