Notifications
Clear all

Inserir Fórmula em Célula Via VBA

8 Posts
2 Usuários
0 Reactions
1,393 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,

Vi o link viewtopic.php?f=10&t=23007&p=116241&hilit=formulalocal+variavel#p116241, mas não consegui adaptar.

Preciso inserir a Fórmula =SEERRO(SE(F80="";"";ÍNDICE(Resultado!$F$2:$F$600;CORRESP(F80;Resultado!$A$2:$A$600;0)));"") na célula I80.

Tentei:
Celula = Planilha9.Cells(linha, "F").Address --->>> Retorna $F$80, e eu preciso de F80, sem o $, destravada.
Planilha9.Cells(linha, colPrecoVenda).FormulaLocal = "=SEERRO(SE(celula="";"";ÍNDICE(Resultado!$F$2:$F$600;CORRESP(celula;Resultado!$A$2:$A$600;0)));"")"

Mas dá o erro 1004: erro de definição de aplicativo ou de objeto.

Obrigado,
pedro

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

 
Postado : 15/05/2017 6:11 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

Experimente:

[I80].FormulaLocal = "=SE(F80="""";"""";SEERRO(ÍNDICE(Resultado!F2:F600;CORRESP(F80;Resultado!A2:A600;0));""""))"

Osvaldo

 
Postado : 15/05/2017 6:59 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Osvaldo,
Grato pela atenção.

Esqueci de dizer que a célula F80 é variável.
Por isso tentei:
Celula = Planilha9.Cells(linha, "F").Address --->>> Retorna $F$80, e eu preciso de F80, sem o $, destravada.

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

 
Postado : 15/05/2017 7:08 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Caramba!
Não entendi.
Testei a fórmula do Osvaldo e funcionou.
Very Good!
Obrigado.

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

 
Postado : 15/05/2017 8:24 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

Olá, Pedro.

Ficou confuso: você resolveu ou ainda precisa de ajuda?

Se não resolveu informe com exatidão o qua ainda falta.

Osvaldo

 
Postado : 16/05/2017 5:34 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Osvaldo,
Duas perguntas:
-Quando referencia [I80] você está se referindo a qual intervalo?
-Por que dispensou a variável Celula?

Veja a função abaixo:

Sub AtualizaPrecoVenda()
    Planilha9.Activate
    Dim j       As Double
    Dim celula As String
    For j = 14 To 1012
        If Cells(j, 2).Value = "Em Aberto" Or Cells(j, 2).Value = "" Then
            celula = Planilha9.Cells(j, "F").Address      '--->>> Retorna $F$80, e eu preciso de F80, sem o $, destravada.
            Planilha9.Cells(j, colPrecoVenda).FormulaLocal = "=SEERRO(SE([color=#FF0000]celula[/color]="";"";ÍNDICE(Resultado!$F$2:$F$600;CORRESP([color=#FF0000]celula[/color];Resultado!$A$2:$A$600;0)));"")"
        End If
    Next j
End Sub

Sendo mais claro, preciso inserir a fórmula =SEERRO(SE(celula="";"";ÍNDICE(Resultado!$F$2:$F$600;CORRESP(celula;Resultado!$A$2:$A$600;0)));"") na Coluna I (nome colPrecoVenda),
no intervalo I14:I1012, desde que a linha equivalente da Coluna B seja igual a "Em Aberto" ou Vazio.
Obs: celula é igual a Planilha9.Cells(j, "F").Address '--->>> No caso, Retorna $F$80, MAS eu preciso de F80, sem o $, destravada. pois o intervalo é até a linha 1012.

Grato.

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

 
Postado : 16/05/2017 12:17 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,
Vou trancar o tópico.
Depois posto outro de forma mais clara e objetiva.
Grato.

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

 
Postado : 16/05/2017 1:38 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pedro

Conforme as regras do fórum, não é permitido criar mais de um tópico sobre o mesmo assunto, continue por aqui mesmo.

[]s

Patropi - Moderador

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

 
Postado : 16/05/2017 6:12 pm