Notifications
Clear all

FormulaArray VBA

4 Posts
2 Usuários
0 Reactions
1,171 Visualizações
(@bonelli)
Posts: 2
New Member
Topic starter
 

Olá a todos!

Estou criando um código onde tenho que usar o Range.FormulaArray, porém o mesmo retorna em erro:
"Não é possível definir a propriedade FormulaArray da classe Range"
Só que a formula funciona normal quando eu insiro ela "na mão", com o Ctrl + Shift + Enter

A fórmula é a seguinte:

Sheets("Planejamento Manual").Range("CA8:CX16").Select
    Selection.FormulaArray = _
        "=MMULT(MATRIZ_AUX!A2:W10;'Planejamento Manual'!$C$8:$Z$30)"

Onde "Planejamento Manual" é a guia onde estou tentando colar a matriz, e MATRIZ_AUX é uma guia criada para fazer os cálculos da matriz que é multiplicada.

Usei a estratégia de criar uma macro pra ver o código, e ai ela me gerou um que funcione no formato R1C1, até ai tudo bem...
Só que quando eu troco os parâmetros das linhas e colunas por variáveis (já que minha matriz pode muda de tamanho seguindo outros parâmetros), ele também não executa, retornando o mesmo erro citado acima.

O código gerado pela gravação da macro é esse aqui:

"=MMULT(MATRIZ_AUX!R[-6]C[-78]:R[2]C[-56],'Planejamento Manual'!R8C3:R30C26)

O restante do código (parte acima) é igual, por isso não repeti.

Agradeço desde já quem puder auxiliar.

 
Postado : 16/07/2014 5:17 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Eu sugiro postar o arquivo.

O VBA não aceita ponto e virgula
Selection.FormulaArray = _
"=MMULT(MATRIZ_AUX!A2:W10;'Planejamento Manual'!$C$8:$Z$30)

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

 
Postado : 16/07/2014 5:30 pm
(@bonelli)
Posts: 2
New Member
Topic starter
 

Boa noite!!

Eu sugiro postar o arquivo.

O VBA não aceita ponto e virgula
Selection.FormulaArray = _
"=MMULT(MATRIZ_AUX!A2:W10;'Planejamento Manual'!$C$8:$Z$30)

De fato, ao trocar o ";" por "," na fórmula funcionou! Muito obrigado!

Já havia arrumado também um outro jeito, utilizando o formato R1C1. Eu estava fazendo errado quando colocava os parâmetros variáveis, quando vi o "[]" achei que fosse como um vetor, que era apenas passar a variável direto, e eu estava errado.

Ai deste modo também funciona:

=MMULT(MATRIZ_AUX!R[-6]C[-78]:R[" & -6 + Quant_Est - 1 & "]C[" & -78 + Quant_Prod - 1 & "],'Planejamento Manual'!R8C3:R" & 8 + Quant_Prod - 1 & "C26)

Onde "Quant_Est" e "Quant_Prod" são as variáveis que mensionei.

 
Postado : 16/07/2014 5:52 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Fico feliz que resolveu, obrigado pelo retorno!!

Att

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

 
Postado : 16/07/2014 6:01 pm