1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

DLL útil

Discussão em 'Programação' iniciada por Delta, 25 de Maio de 2004. (Respostas: 22; Visualizações: 3803)

  1. Delta

    Delta Suspenso

    Criar uma referência para a DLL "Conversion.dll"

    Usage :

    Sub testes()
    Dim cObj As New Num2Word

    ext = cObj.Extenso("12345,45")
    MsgBox ext
    End Sub

    converte automaticamente euros para extenso com cêntimos até ordens de grandeza dos biliões. O formato do número tem que ser 9999999,99

    digam se funciona ou não, a mim sim. Está optimizada ao máximo e é um componente usado até à exaustão na minha empresa

    NOTA IMPORTANTE : RENOMEAR O FICHEIRO PARA EXTENSÃO DLL
     

    Ficheiros Anexados:

    Última edição: 26 de Maio de 2004
  2. alph

    alph Power Member

    isso parece-m MUITO interessante até pk já trabalhei num script para VBA Excel deste tipo. 1 pergunta noob de quem nunca trabalhou com *.dll's: como se implementa um dll num projecto? outra pergunta: n podías arranjar o código? curtia d ver :) cheers
     
  3. NoMercy

    NoMercy Power Member

    dos teste que fiz em c# funcionou bem. tá fixe.
    Já tinha feito isto mas noutra linguagem.
    É COM+ em vb?
    Só não percebi é pq é k o parâmetro do método Extenso está por referência,
    aliás, ao contrário do que tens no exemplo que postaste aki.
     
  4. Delta

    Delta Suspenso

    Este programa de conversão para extensos tem mais de 7 anos de funcionamento em mais de 20 delegações espalhadas pelo país, trabalho na função pública.

    Portanto é muito fiável e quase que não tem limites para os números.

    O parâmetro é por referência porque só hoje adaptei para DLL, e em VB não é muito exigente nisso
     
  5. alph

    alph Power Member

    humm axo k eles ocultaram os meus posts... tenho o feeling k ninguém os lê :sad:
     
  6. caprr

    caprr Power Member

    viva

    esses .dll sao modulos ?

    alph--> como partilho duvidas identicas á tua e que tal abrir um thread so relacionada com .dll


    fiquem bem
     
  7. Delta

    Delta Suspenso

    Última edição: 26 de Maio de 2004
  8. _zZz_

    _zZz_ Professional Folder

    como implementar isto em excel?

    _zZz_
     
  9. NoMercy

    NoMercy Power Member

    trocas o by ref por by val se quiseres mudar.
     
  10. Delta

    Delta Suspenso

    ==============================
    como implementar isto em excel?
    ==============================

    Não sou muito expert em VBA-Excel, mas eis um exemplo

    O truque é abrir um novo projecto VBA com uma referência à DLL, depois cria-se um módulo e dentro deste módulo uma função pública (fExtenso)

    Public Function fExtenso(adr As Range) As String
    Dim cOBJ As New Num2Word
    fExtenso = cOBJ.Extenso(CStr(adr))
    End Function


    Depois basta numa célula usar a função :

    =fExtenso(A1)
    =fExtenso(A2)
    etc...

    NOTAS IMPORTANTES :

    Renomear o ficheiro para extensão XLS

    Provavelmente é necessário refazer a referência à DLL

    Melhorias que podem ser feitas :

    criar um XLA, um template excel com esta função pública
     

    Ficheiros Anexados:

    Última edição: 26 de Maio de 2004
  11. Delta

    Delta Suspenso

    ===========================================
    trocas o by ref por by val se quiseres mudar.
    ===========================================

    Sim, já tinha mudado e fiz novamente o upload para este fórum
     
  12. Delta

    Delta Suspenso

    Alterei o exemplo excel para permitir o ajuste automático dos endereços das células, tal como qualquer outra função excel basta arrastar o rato para refazer os endereços das células.

    A anterior versão estava como String, o que não pode ser
     
  13. alph

    alph Power Member

    my question is: como referir ao dll?
     
  14. Delta

    Delta Suspenso

    Assim que se abre o Excel :

    Ferramentas -> Editor do Visual Basic -> Tools -> References

    escolhe-se a DLL

    Depois, ainda dentro do editor Visual Basic :

    Menu Insert -> Module

    Copiar a função para dentro do módulo :


    Public Function fExtenso(adr As Range) As String
    Dim cOBJ As New Num2Word
    fExtenso = cOBJ.Extenso(CStr(adr))
    End Function

    Depois é só usar a função nas células, exemplos :

    =fExtenso(A1)
    =fExtenso(B1)
    =fExtenso(C1)

    etc..
     
  15. alph

    alph Power Member

    eureca! thanks Delta! gr8 dll
     
  16. APLinhares

    APLinhares OpenSource Moderator
    Staff Member

    ggrr... n consigo sacar... n tenho permissao ... os attachs n tao desativados ?

    abraço
     
  17. Delta

    Delta Suspenso

    UP

    é só para ir para cima porque há pessoas à procura do mesmo
     
  18. APLinhares

    APLinhares OpenSource Moderator
    Staff Member

    n dá pra m mandares por mail sff ?

    abraço
     
  19. Delta

    Delta Suspenso

    Mas o ficheiro está aqui, no 1º post, é só sacá-lo para o disco
     
  20. APLinhares

    APLinhares OpenSource Moderator
    Staff Member

    eu bem keria...

    [​IMG]
     

Partilhar esta Página