Notifications
Clear all

Gravar Resultado de uma função em outra célula

7 Posts
4 Usuários
0 Reactions
1,288 Visualizações
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
Topic starter
 

Prezados,

Tenho um pequeno problema que não consegui resolver. Acredito que para os amigos "feras" em VBA aqui será fácil. Na célula A1 e na célula B1 tenho valores inteiros. Em C1 tenho a soma normal desses valores inseridos por uma pequena função (UDF). O exemplo anexo é muito fácil porém a planilha de fato é muito complexa e necessita da mesma lógica. Ou seja: preciso que a fórmula inserida seja através de uma UDF (função própria) e que o resultado obtido (no caso o resultado da célula C1) seja também transportado para a célula G1 dentro da execução da própria função, no mesmo momento .

No arquivo anexo veja que comentei a linha

Range("G2").Value = SomarEsp(Valor1, Valor2)

Pois, quando a utilizo, o VBA retorna #VALOR!.

Bom... o que de fato é importante para mim: Que o resultado da função seja copiado para outra célula também, todavia, no mesmo momento da execução da função.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 20/04/2018 7:00 am
(@klarc28)
Posts: 971
Prominent Member
 

Vejo esse problema de uma forma bem ingênua:

Na célula G1 colocar a fórmula:

=C1

 
Postado : 20/04/2018 7:13 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
Topic starter
 

klarc28,

Bom dia!

Obrigado pela resposta. Todavia, a necessidade é que o resultado calculado pela função, vá para outra célula, dentro da própria função UDF e no mesmo momento da sua execução.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 20/04/2018 7:17 am
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Cara tentei alguma forma de incluir uma sub dentro de uma function mas sem sucesso..
A única forma que encontrei foi incluindo esse código na sua Plan1:

Option Compare Text
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim coluna, coluna2 As Long
Dim valor1, valor2 As String
Dim cont1 As Long
'Coluna da fórmula principal
coluna = 3 '$C
'Coluna da fórmula auxiliar
coluna2 = 7 '$G
cont1 = Len(Target.Address(False, False))
valor1 = Mid(Target.Formula, Application.WorksheetFunction.Find(",", Target.Formula) - cont1, cont1)
valor2 = Mid(Target.Formula, Application.WorksheetFunction.Find(",", Target.Formula) + 1, cont1)
If Target.Column = coluna And Target.Formula = "=SomarEsp(" & valor1 & "," & valor2 & ")" Then
Cells(Target.Row, coluna2).Value = Target.Formula
End If
End Sub

Porém não sei se vai te atender. Abrç!

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 20/04/2018 9:18 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
Topic starter
 

xlarruda,

Boa tarde!

Muito obrigado pela resposta. Vou deixar aberto por mais alguns dias pois a solução não atende a necessidade.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 20/04/2018 10:34 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Grande Wagner! Boa tarde.

Pelo visto esse problema é semelhante ao que o colega XLArruda passou quando quis tentar abrir um arquivo dentro de uma UDF (tópico Dúvida com ProcV) o que não é possivel.

UDF's são próprias para lerem coisas mas têm muitas limitações quando se espera que elas façam coisas. Então provavelmente terás se explorar outro caminho (Worksheet_Calculate, por exemplo).

 
Postado : 20/04/2018 10:48 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
Topic starter
 

EdsonBR,

Obrigado pela resposta. Acho que você está certíssimo amigo. Creio que isso mesmo.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 20/04/2018 12:19 pm