Notifications
Clear all

Função não executa

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

Boas a todos.
Quero criar uma função que irá comparar o valor da célula 1 e o da célula 2 e retornar um valor pré determinado.
Sou novo em programação e gostaria de saber o que estou fazendo de errado.
Obrigado e até mais.

Public Function Teste(Celula_1, Celula_2 As String)

    If  Celula_1 = "A" And Celula_2 = "B" Then
        Teste = "123"
    ElseIf Celula_1 = "A" And Celula_2  = "C" Then
        Teste = "234"
    End If

End Function
 
Postado : 28/05/2015 10:37 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Pra mim funcionou normalmente.

Talvez a função não faça o que vc quer, ou vc esteja fazendo um uso incorreto dela. Mas ela está funcionando como foi programada.

Explique melhor, anexe teu modelo, de mais detalhes pra que alguém possa te ajudar.

 
Postado : 28/05/2015 11:08 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

tiago, poderia ser mais claro, quando diz no titulo "Funçao não executa" a que se refere ?

Nesta função que postou, é comparado se na primeira celula selecionada o valor for "A" e na segunda for "B" e retorna o valor como Texto "123", então este retorno não da para ser utilizado desta forma em alguma operação matemática.
Se o que pretende é que o valor retornado seja "Numérico" você teria de utilizar VAL que converte para valor numerico, ficando :

Public Function Teste(Celula_1, Celula_2 As String)

    If Celula_1 = "A" And Celula_2 = "B" Then
        Teste = Val(123)
    ElseIf Celula_1 = "A" And Celula_2 = "C" Then
        Teste = Val(234)
    End If

End Function

Se não for isto, aguardamos maiores detalhes.

[]s

 
Postado : 28/05/2015 11:12 am
(@edcronos)
Posts: 1006
Noble Member
 

mauro, nem precisa usar a função val()
seria somente sometne tirar as aspas

tiagolima
vc pode usar a função if then com cascata para ter um AND conjunto
isso facilita acompanhar oq a macro está fazendo e definir

If Celula_1 = "A" then
if Celula_2 = "B" Then Teste = Val(123)
if Celula_2 = "C" Then Teste = Val(234)
End If

assim as b e c apenas vão executar se A for verdadeiro

mas pelo nome das variaveis acho que vc quer usar range
então ficaria assim
Public Function Teste( Celula_1 as range , Celula_2 As range )

 
Postado : 30/05/2015 2:18 pm