Notifications
Clear all

Como chamar uma função de outro módulo

3 Posts
2 Usuários
0 Reactions
1,016 Visualizações
(@eduardo93)
Posts: 4
New Member
Topic starter
 

Olá a todos!

Estou escrevendo um algoritmo de uma função chamada CZERNYax(). Em determinado momento, eu devo chamar uma função chamada LinInterpolate(), a qual está em outro módulo. Eu já tentei executar "Call LinInterpolate()", "Application.WorksheetsFunction.LinInterpolate()", "LinInterpolate()", mas até agora nada funcionou. Gostaria de saber como posso contornar esse problema. Abaixo está um trecho do macro que estou gerando:

Public Function CZERNYax(tipo As String, i As Variant) As Variant

Call LinInterpolate
   
    If tipo = "2A" Then
        If i > 2 Then
            CZERNYax = 8               
        ElseIf i <= 2 Then
            On Error Resume Next
            CZERNYax = Application.WorksheetFunction.VLookup(i, Workbooks("Tabelas de Czerny.xlsx").Worksheets("Tipo 2A").Range("A8:B28"), 2, 0)
            If Err.Number <> 0 Then
                CZERNYax = Application.WorksheetsFunction.LinInterpolate(i, Workbooks("Tabelas de Czerny.xlsx").Worksheets("Tipo 2A").Range("A8:A28"), Workbooks("Tabelas de Czerny.xlsx").Worksheets("Tipo 2A").Range("B8:B28"))
            End If
        End If

'[...]
    End If

End Function

Abaixo o link da função LinInterpolate():

http://www.vbaexpress.com/forum/showthr ... erpolation

Desde já, agradeço!

 
Postado : 18/04/2014 2:47 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Tu queres usar em uma célula?

 Range(Intervalo).Formula = "=CZERNYax(

Att

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

 
Postado : 18/04/2014 3:00 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se está utilizando a função desejada, em outro módulo como private, deve se referenciar ao módulo para acessa-la

    Public Function CZERNYax(tipo As String, i As Variant) As Variant

       
        If tipo = "2A" Then
            If i > 2 Then
                CZERNYax = 8
            ElseIf i <= 2 Then
                On Error Resume Next
                CZERNYax = Application.WorksheetFunction.VLookup(i, Workbooks("Tabelas de Czerny.xlsx").Worksheets("Tipo 2A").Range("A8:B28"), 2, 0)
                If Err.Number <> 0 Then
                    CZERNYax = Módulo2.LinInterpolate(i, Workbooks("Tabelas de Czerny.xlsx").Worksheets("Tipo 2A").Range("A8:A28"), Workbooks("Tabelas de Czerny.xlsx").Worksheets("Tipo 2A").Range("B8:B28"))
                End If
            End If

    '[...]
        End If

    End Function

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

 
Postado : 18/04/2014 4:16 pm