Notifications
Clear all

Inserir uma fórmula em várias céulas com VBA

6 Posts
3 Usuários
0 Reactions
1,585 Visualizações
 lino
(@lino)
Posts: 8
Active Member
Topic starter
 

Olá, Bom Dia

Estou com um problemão aqui, e até agora não consegui solucioná-lo.
É o seguinte. tenho várias planilhas na minha pasta de trabalho, e essas possuem várias células com uma mesma fórmula. Pra não ter que ficar fazendo isso manualmente, por ser uma quantidade muito grande, queria automatizar isto, e se possível deixar meu arquivo mais leve também(porque está muito pesado, e talvez poderia ajudar).

Eu criei um formulário com três campos, e fiz o teste sem fórmulas. Deu tudo certo, consegui inserir os dados com êxito. Inseri pequenas fórmulas, como algo do tipo : =C15+C16*C17, novamente tudo ocorreu normalmente. Porém quando fui inserir as fórmulas que eu quero, deu erro. Elas são consideravelmente grandes, e não sei se isso interferiu, me retornou o seguinte erro:

Erro em tempo de exucução '1004:
Erro de definição de aplicativo ou de definição de objeto.

O código que usei para o formulário foi o seguinte :

   Private Sub CommandButton1_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Port.")


iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

'copia os dados para as celulas
ws.Cells(5, 4).Value = Me.TextBox1.Value
ws.Cells(15, 6).Value = Me.TextBox2.Value
ws.Cells(20, 4).Value = Me.TextBox3.Value

End Sub 
 
Postado : 21/04/2014 4:23 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Onde está as formulas?

Att

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

 
Postado : 21/04/2014 5:31 am
 lino
(@lino)
Posts: 8
Active Member
Topic starter
 

As fórmulas que estou usando são iguais essa, pras demais muda muito pouco, testei e apresentou erro.
Se possível dê exemplos baseado nesta daqui, pq quando a jogo no form não executa.

Fórmula 1:

=SE(C15&C16="";"";SE(C15<0;"Mensagem1";SE(C16<0;"Mensagem2";SE(C15>L21;"Limite Mensagem1";SE(C16>L22;"Limite Mensagem2";SOMA(C15+C16))))))
 
Postado : 21/04/2014 7:28 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

As fórmulas que estou usando são iguais essa, pras demais muda muito pouco, testei e apresentou erro.
Se possível dê exemplos baseado nesta daqui, pq quando a jogo no form não executa.

Fórmula 1:

=SE(C15&C16="";"";SE(C15<0;"Mensagem1";SE(C16<0;"Mensagem2";SE(C15>L21;"Limite Mensagem1";SE(C16>L22;"Limite Mensagem2";SOMA(C15+C16))))))

Não ajudou muito, em sua rotina você procura a ultima celula vazia e depois joga os valores referentes aos TextBox(s) para outras celulas, então onde entra a formula ?
Se possivel anexe um modelo com o resultado esperado, ficara mais facil analisar ou detalhe melhor sua necessidade.

[]s

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

 
Postado : 21/04/2014 8:07 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Seria isso....?

Private Sub CommandButton1_Click()
    
    
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Port.")

ws.Cells(5, 4).Value = Replace(Me.TextBox1.Text, ";", ",")
ws.Cells(15, 6).Value = Replace(Me.TextBox2.Text, ";", ",")
ws.Cells(20, 4).Value = Replace(Me.TextBox3.Text, ";", ",")

End Sub

Att

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

 
Postado : 21/04/2014 4:04 pm
(@d1nho)
Posts: 22
Eminent Member
 

Se você sabe exatamente onde vai inserir as formulas, por que usar um Form? Poderia usar o método "Formula"

Cells(L, C).Formula = "=SUM(C4,C5)"

onde L número da Linha e C número da Coluna a partir de A1, lembrando que o nome das formulas deve esta em inglês Exemplo SOMA(Sum) SE (IF) e os argumentos devem ser separados por , e não ; . Como no Exemplo.

 
Postado : 22/04/2014 12:16 pm