DLL útil

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
 

Anexos

  • Conversion.pdf
    40 KB · Visualizações: 71
Última edição:
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
 
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.
 
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
 
viva

esses .dll sao modulos ?

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


fiquem bem
 
Última edição:
Delta disse:
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

trocas o by ref por by val se quiseres mudar.
 
==============================
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
 

Anexos

  • Livro1.pdf
    23 KB · Visualizações: 18
Última edição:
===========================================
trocas o by ref por by val se quiseres mudar.
===========================================

Sim, já tinha mudado e fiz novamente o upload para este fórum
 
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
 
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..
 
eu bem keria...

era.JPG
 
Back
Topo