locked
Função dentro de função RRS feed

  • Pergunta

  • Ola pessoal

    Tenho pouca experiencia com VB, porem queria colocar uma "função do excel" (=CONTAR.VAZIO) dentro de uma "função do VB". Mais ou menos assim (simplifiquei um pouco...)


    Function Pendencias(x) As Integer
        Pendencias = (12 + CONTAR.VAZIO(x)) - Month(Now)
    End Function



    1. Primeiro, queria saber se isso é possivel???

    2. Caso seja, como faço funcionar? O que falta para funcionar??


    bem como disse não tenho experiencia nenhuma em VB, porem lendo algum material que achei notei que dentro do VB so funcionam funções em ingles (como a "Month" por exemplo), uma solucao seria simplesmente eu achar a equivalente em ingles?
    sábado, 4 de novembro de 2006 21:47

Todas as Respostas

  • Olá, Felipe.

    Segue um exemplo:

    Public Function Pendencias(x) As Integer
      Pendencias = (12 + WorksheetFunction.CountBlank(x)) - Month(Now)
    End Function
    

    Atenciosamente,

    domingo, 5 de novembro de 2006 00:08
  • Obrigado Otavio pela resposta, realmente funciona.

    Resolveu muitos problemas meus de imediato. Achei esse site (http://www.techonthenet.com/excel/formulas/index_alpha.php) muito interessante, de onde estou tirando as funcoes que preciso.

    Caso tenha paciencia ainda, como faco uma funçao If funcionar no VB?? Por exemplo essa bem simples...

     

    Public Function Pendencias(venc) As Integer
        Pendencias = WorksheetFunction.If(Date < DateSerial(2006, 11, venc), 1, 0)
    End Function

    Porque ele nao funciona???

    terça-feira, 7 de novembro de 2006 12:36
  • Olá,

    Você deve usar a função IIf() do VBA, cuja sintaxe é:

    IIf(expression, truepart, falsepart)
    

    A função acima retorna o valor de truepart sempre que expression for verdadeira, e retorna o valor de falsepart sempre que expression for falsa.

    Assim, no seu exemplo, teríamos:

    Public Function Pendencias(venc) As Integer
        Pendencias = IIf(Date < DateSerial(2006, 11, venc), 1, 0)
    End Function
    

     Atenciosamente,

    terça-feira, 7 de novembro de 2006 13:18
  • Meu para variar funcionou...

    Muito obrigado mesmo Otavio, vc me ajudou muito. Acima de tudo, obrigado pela paciencia.

    abraco

    Felipe

    quarta-feira, 8 de novembro de 2006 15:10