Inserir uma fórmula em determinada célula via Macro

Bom dia,

Gostaria de saber se podem me ajudar com a seguinte dúvida:

Preciso criar uma macro que insira na célula F3 a fórmula a seguir:

=SE(E3<>"";SE(E4<>"";F3;SE(E5<>"";F3&" “&F4;SE(E6=”";F3&" “&F4&” “&F5&” “&F6;F3&” “&F4&” "&F5))))

Estou usando a versão 5.0.6.3

Muito obrigado.

1 Like

Bom dia,


Adapte a macro abaixo, colocando o nome da planilha onde a célula está:
Sub InserirFormula
Dim oDoc As Object, oPlan As Object, oCelula As Object
   
   oDoc = ThisComponent
   oPlan = oDoc.Sheets.getByName("Planilha1") '<< nome da sua planilha aqui'
   oCelula = oPlan.getCellRangeByName("F3")
   
   oCelula.FormulaLocal = "=SE(E3<>"""";SE(E4<>"""";F3;SE(E5<>"""";F3&"" ""&F4;SE(E6="""";F3&"" ""&F4&"" ""&F5&"" ""&F6;F3&"" ""&F4&"" ""&F5))))"
End Sub

Considerações: No código é preciso primeiro colocar a fórmula entre aspas. E se dentro da fórmula existirem aspas, como no seu caso, é preciso usá-las em dobro. Assim, as ocorrências “” devem vir “”"" e " " deve aparecer “” “”. Do contário, dará erro de sintaxe do basic.


Atte,
1 Like

Bom dia,

Muito obrigado pela ajuda, deu certo. Não poderia ter sido mais claro!

Obrigado também pela dica com relação as aspas, com certeza isso resolverá muitos problemas que
eu tenho nesse sentido. Realizei diversas pesquisas na internet, contudo, não encontrei nada falando sobre isso!

Muito, muito obrigado!