Notifications
Clear all

Erro 1004: VBA e formula matricial

7 Posts
3 Usuários
0 Reactions
983 Visualizações
(@mmancebo)
Posts: 4
New Member
Topic starter
 

Boa tarde, estou tentando colocar uma formula matricial no VBA, porém não estou conseguindo. Vi que outras pessoas tiveram problemas semelhantes, mas não consegui entender qual a solução para tal.

Minha formula é a seguinte, e funciona perfeitamente: =SEERRO(SE(PROCV(ÍNDICE('Banco de Dados Produtos'!$D$12:$F$26;MENOR(SE('Banco de Dados Produtos'!$E$12:$E$26='Passo 5'!$M$4;LIN('Banco de Dados Produtos'!$D$12:$D$26)-11);LIN(A1));1);'Banco de Dados Produtos'!$D$12:$I$28;6;0)=$M$3;ÍNDICE('Banco de Dados Produtos'!$D$12:$F$26;MENOR(SE('Banco de Dados Produtos'!$E$12:$E$26='Passo 5'!$M$4; LIN('Banco de Dados Produtos'!$F$12:$F$26)-11);LIN(A1));3);123);123)

No VBA fica:

Range("M5").Select
Selection.FormulaArray = _
"=IFERROR(IF(VLOOKUP(INDEX('Banco de Dados Produtos'!R12C4:R26C6,SMALL(IF('Banco de Dados Produtos'!R12C5:R26C5='Passo 5'!R4C13,ROW('Banco de Dados Produtos'!R12C4:R26C4)-11),ROW(R[-4]C[-12])),1),'Banco de Dados Produtos'!R12C4:R28C9,6,0)=R3C13,INDEX('Banco de Dados Produtos'!R12C4:R26C6,SMALL(IF('Banco de Dados Produtos'!R12C5:R26C5='Passo 5'!R4C13, ROW('Banco de Da" & _
"dos Produtos'!R12C6:R26C6)-11),ROW(R[-4]C[-12])),3),123),123)" & _
""

Obrigado

 
Postado : 08/03/2016 1:47 pm
(@osvaldomp)
Posts: 859
Prominent Member
 

Experimente:

Sub InsereFórmula()
 [M5].Select
 Selection = "=IFERROR(IF(VLOOKUP(INDEX('Banco de Dados Produtos'!$D$12:$F$26,SMALL(IF('Banco de Dados Produtos'!$E$12:$E$26='Passo 5'!$M$4,ROW('Banco de Dados Produtos'!$D$12:$D$26)-11),ROW(A1)),1),'Banco de Dados Produtos'!$D$12:$I$28,6,0)=$M$3,INDEX('Banco de Dados Produtos'!$D$12:$F$26,SMALL(IF('Banco de Dados Produtos'!$E$12:$E$26='Passo 5'!$M$4, ROW('Banco de Dados Produtos'!$F$12:$F$26)-11),ROW(A1)),3),123),123)"
 SendKeys "{F2}^+~"
End Sub

Osvaldo

 
Postado : 08/03/2016 3:51 pm
(@mmancebo)
Posts: 4
New Member
Topic starter
 

Bom dia Osvaldo,

obrigado pela resposta!!!! Porém ao fazer isso, a formula deixou de ser matricial e passou a ser "normal". No seu dá isso também?

 
Postado : 09/03/2016 5:36 am
(@mmancebo)
Posts: 4
New Member
Topic starter
 

Consegui faze-la funcionar. porém quando coloca o "autofill" ele não funciona. Se faz manualmente ele funciona. Alguem sabe o pq?

 
Postado : 09/03/2016 5:57 am
(@osvaldomp)
Posts: 859
Prominent Member
 

Porém ao fazer isso, a formula deixou de ser matricial e passou a ser "normal". No seu dá isso também?

O código que passei insere a fórmula como matricial!

Consegui faze-la funcionar. porém quando coloca o "autofill" ele não funciona. Se faz manualmente ele funciona. Alguem sabe o pq?

Uma possibilidade é você fazer um Loop com o comando SendKeys nas células preenchidas com o comando AutoFill.
Se não conseguir sugiro que você disponibilize uma amostra do seu arquivo com o código que você está usando e com as explicações.

Osvaldo

 
Postado : 09/03/2016 9:41 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

De uma olhada no tópico abaixo se ajuda :

Como Criar uma função Matricial com VBA [Resolvido]
viewtopic.php?f=10&t=9382

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 09/03/2016 11:16 am
(@mmancebo)
Posts: 4
New Member
Topic starter
 

Agradeço a ambos. Porém a situação de colocar loop era meio ruim, pois eram 15 mil linhas, 17 celulas por linha. Então demoraria muito. Creio que encontrei uma outra forma, sem formula matricial. Muito obrigado a ambos.

 
Postado : 09/03/2016 12:24 pm