Notifications
Clear all

Erro em tempo de execução '1004' - FormulaArray

8 Posts
2 Usuários
0 Reactions
2,179 Visualizações
(@vini_727)
Posts: 23
Eminent Member
Topic starter
 

Bom dia,

Quando tento executar uma macro aparece o erro 1004, a formula funciona perfeitamente quando escrita na célula.

Erro em tempo de execução '1004':
Não é possível definir a propriedade FormulaArray da classe Range.

Formula:

Range("A2").Select

Selection.FormulaArray = _
"=IF(MID(INDEX(Plan1!C,MATCH(Plan5!RC[2],Plan1!C,0)+4),1,11)=""REFERENCIA "",RIGHT(INDEX(Plan1!C,MATCH(Plan5!RC[2],Plan1!C,0)+4),LEN(INDEX(Plan1!C,MATCH(Plan5!RC[2],Plan1!C,0)+4))-11),IF(MID(INDEX(Plan1!C,MATCH(Plan5!RC[2],Plan1!C,0)-1),1,8)=""KOMATSU "",RIGHT(INDEX(Plan1!C,MATCH(Plan5!RC[2],Plan1!C,0)-1),LEN(INDEX(Plan1!C,MATCH(Plan5!RC[2],Plan1!C,0)-1))-8),INDEX(" & _
" Pan1!C,MATCH(Plan5!RC[2],Plan1!C,0)-1)))"

 
Postado : 28/05/2014 6:21 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Normalmente esse erro é devido a uma inconsistência na formula, ou seja ao tentar "repassar" a formula para a planilha e encontrado um erro.
Tentar ler a formula da maneira que está é muito dificil. Poste pelo menos (já que disse que funciona quando escrito na célula), como fica a mesma nessa celula.
Tambem de uma availada na referencia do MATCH(...,Plan1!C,0; provavelmente seja ....Plan1!C:C,...

 
Postado : 28/05/2014 6:30 am
(@vini_727)
Posts: 23
Eminent Member
Topic starter
 

O print ajuda?

 
Postado : 28/05/2014 6:41 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!!

Cole a sua formula dentro da chave

minha formula

, para que possamos ajuda-lo!

Att

 
Postado : 28/05/2014 7:14 am
(@vini_727)
Posts: 23
Eminent Member
Topic starter
 

O problema pode ser na quebra da formula no VBA?

Na célula:

=SE(EXT.TEXTO(ÍNDICE(Plan1!A:A;CORRESP(Plan5!C2;Plan1!A:A;0)+4);1;11)="REFERENCIA ";DIREITA(ÍNDICE(Plan1!A:A;CORRESP(Plan5!C2;Plan1!A:A;0)+4);NÚM.CARACT(ÍNDICE(Plan1!A:A;CORRESP(Plan5!C2;Plan1!A:A;0)+4))-11);SE(EXT.TEXTO(ÍNDICE(Plan1!A:A;CORRESP(Plan5!C2;Plan1!A:A;0)-1);1;8)="KOMATSU ";DIREITA(ÍNDICE(Plan1!A:A;CORRESP(Plan5!C2;Plan1!A:A;0)-1);NÚM.CARACT(ÍNDICE(Plan1!A:A;CORRESP(Plan5!C2;Plan1!A:A;0)-1))-8);ÍNDICE(Plan1!A:A;CORRESP(Plan5!C2;Plan1!A:A;0)-1)))

No VBA:

Sub Macro4()
'
' Macro4 Macro
'

'
       Range("A3").Select
    Selection.FormulaArray = _
        "=IF(MID(INDEX(Plan1!C,MATCH(Plan5!RC[2],Plan1!C,0)+4),1,11)=""REFERENCIA "",RIGHT(INDEX(Plan1!C,MATCH(Plan5!RC[2],Plan1!C,0)+4),LEN(INDEX(Plan1!C,MATCH(Plan5!RC[2],Plan1!C,0)+4))-11),IF(MID(INDEX(Plan1!C,MATCH(Plan5!RC[2],Plan1!C,0)-1),1,8)=""KOMATSU "",RIGHT(INDEX(Plan1!C,MATCH(Plan5!RC[2],Plan1!C,0)-1),LEN(INDEX(Plan1!C,MATCH(Plan5!RC[2],Plan1!C,0)-1))-8),INDEX(" & _
          " Pan1!C,MATCH(Plan5!RC[2],Plan1!C,0)-1)))"
          
End Sub

Anexo uma parte da planilha, talvez ajude.

 
Postado : 28/05/2014 7:44 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Tente assim.

Sub Macro4()
Range("A3").Formula = "=IF(MID(INDEX(Plan1!A:A,MATCH(Plan5!C2,Plan1!A:A,0)+4),1,11)=""REFERENCIA "",RIGHT(INDEX(Plan1!A:A,MATCH(Plan5!C2,Plan1!A:A,0)+4),LEN(INDEX(Plan1!A:A,MATCH(Plan5!C2,Plan1!A:A,0)+4))-11),IF(MID(INDEX(Plan1!A:A,MATCH(Plan5!C2,Plan1!A:A,0)-1),1,8)=""KOMATSU "",RIGHT(INDEX(Plan1!A:A,MATCH(Plan5!C2,Plan1!A:A,0)-1),LEN(INDEX(Plan1!A:A,MATCH(Plan5!C2,Plan1!A:A,0)-1))-8),INDEX(Plan1!A:A,MATCH(Plan5!C2,Plan1!A:A,0)-1)))"
End Sub

Att

 
Postado : 28/05/2014 7:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Note que em sua formula, na linha final assumiu Pan1... altere para PLAN1 e veja se funciona

... " Pan1!C,MATCH(Plan5!RC[2],Plan1!C,0)-1)))"
 
Postado : 28/05/2014 8:00 am
(@vini_727)
Posts: 23
Eminent Member
Topic starter
 

Sim, perfeitamente muito obrigado.

Se importa de falar qual era o problema?

 
Postado : 28/05/2014 8:09 am