Página 1 de 1

Ajuda - Macro Corresp + indice

Enviado: 27 Out 2016 às 09:32
por daniexcel
Pessoal, bom dia
Sei que o que estou pedindo é simples, mas estou com uma certa dificuldade, devido ao "array" (Ctrl Shift Enter)

Preciso fazer um "procv avançado" em vba... no excel, é facil... utilizo indice e corresp.... e ai vem o velho Ctrl Shift Enter para ativar a formula...
no entanto, não consigo combinar isso no Applicationworksheetfunction

voces poderiam me ajudar?
A formula em excel é a seguinte
=ÍNDICE($H:$H;CORRESP(Criterio1&Criterio2&Criterio3;$A:$A&$B:$B&$C:$C;0)),
onde meus critérios são buscados nas colunas A B e C e o resultado está na coluna H

ou ainda:
Selection.FormulaArray = "=INDEX(C8,MATCH(Criterio1&Criterio2&Criterio3,C1&C2&C3,0))"

Poderiam me ajudar em uma macro que possibilite visualizar o resultado, de modo que eu possa obter o valor através dos 3 criterios indicados?

Obrigado

Re: Ajuda - Macro Corresp + indice

Enviado: 27 Out 2016 às 09:42
por alexandrevba
Bom dia!!!

Eu sinceramente não entedi.

A formula gerada não atende seu requisito?

Att

Ajuda - Macro Corresp + indice

Enviado: 27 Out 2016 às 10:38
por daniexcel
desta maneira não... o problema é que o código aplica a mesma fórmula na célula... eu até poderia fazer um ACTIVECELL = ACTIVECELL para fixar o valor, mas a minha intenção era que o código já fosse inserido diretamente....
Exemplo : Application.worksheetfunction.sum(Range("A1:A10")) ... é o mesmo que eu inserir um SUM("A1:A10")... mas ele não insere a formula.. já insere o valor direto

Re: Ajuda - Macro Corresp + indice

Enviado: 27 Out 2016 às 11:13
por DJunqueira
Para evitar usar Ctr + Shift + Enter:
Código: Selecionar todos
=ÍNDICE($H:$H;SOMARPRODUTO((($K$12&$K$13&$K$14)=($A:$A&$B:$B&$C:$C))*LIN(A:A)))
Veja mais na planilha anexa.

Re: Ajuda - Macro Corresp + indice

Enviado: 27 Out 2016 às 11:20
por DJunqueira
DJunqueira escreveu:Para evitar usar Ctr + Shift + Enter:
Código: Selecionar todos
=ÍNDICE($H:$H;SOMARPRODUTO((($K$12&$K$13&$K$14)=($A:$A&$B:$B&$C:$C))*LIN(A:A)))
Tb pode usar a função PROC()
Código: Selecionar todos
=PROC($K$12&$K$13&$K$14;Tabela1[Nome]&Tabela1[Sobrenome]&Tabela1[Estado];Tabela1[Valor])
Veja mais na planilha anexa.

Ajuda - Macro Corresp + indice

Enviado: 28 Out 2016 às 16:58
por daniexcel
DJunqueira. Obrigado
No entanto, eu não consigo aplicar isso em um Worksheetfunction
Ex :
Application.WorksheetFunction.Lookup(ActiveSheet.Range("L12") & ActiveSheet.Range("L13") & ActiveSheet.Range("L14"), ActiveSheet.Range("A1:A5") & ActiveSheet.Range("B1:B5") & ActiveSheet.Range("C1:C5"), ActiveSheet.Range("H1:H5"))

O problema é que eu preciso aplicar os valores, utilizando um arranjo em For para todas as minhas linhas ... pra usar formula, eu teria que copiar a celula, colar formulas, aplicar um Calculate na sheet... gostaria de saber se há uma maneira de fazer com que as formulas do excel sejam aplicadas diretamente, de modo que eu consiga combinar condições... ou se há alguma outra maneira de fazer um "REPLACE" com criterios....

super obrigado

Ajuda - Macro Corresp + indice

Enviado: 28 Out 2016 às 18:40
por DJunqueira
Não consegui ter uma visão geral do q vc quer.
O q afinal vc está tentando montar?