OVH Cloud OVH Cloud

Les dll et Excel

16 réponses
Avatar
Starwing
Bonjour,

J'aimerais savoir s'il y a au moins une personne qui a un tutoriel sur la
façon de créer une DLL sur Excel, avec un exemple en main, pour faciliter la
compréhension. J'ai beau fouiller sur Google, mais je n'ai rien vu de
vraiment explicatif. Juste des survols comme:
"Ça se fait, mais on ne vous dit pas comment" ;
"Ça prend du C ou du C++"; etc...
J'ai trouvé un exemple mais...en Delphi..Beuark!!

Sagit-il d'un secret???

Merci d'avance à ceux qui me mettront sur une piste sérieuse.

Starwing

10 réponses

1 2
Avatar
Hervé
Salut Starwing,
A moins que je me trompe (j'en doute), ce n'est pas possible en VBA.
Hervé.

"Starwing" a écrit dans le message news:

Bonjour,

J'aimerais savoir s'il y a au moins une personne qui a un tutoriel sur la
façon de créer une DLL sur Excel, avec un exemple en main, pour faciliter
la

compréhension. J'ai beau fouiller sur Google, mais je n'ai rien vu de
vraiment explicatif. Juste des survols comme:
"Ça se fait, mais on ne vous dit pas comment" ;
"Ça prend du C ou du C++"; etc...
J'ai trouvé un exemple mais...en Delphi..Beuark!!

Sagit-il d'un secret???

Merci d'avance à ceux qui me mettront sur une piste sérieuse.

Starwing




Avatar
Starwing
Bonjour Hervé,
Je sais qu'en VBA c'est impossible de créer une DLL ;-).
Il faut utiliser un logiciel comme Visual C++, pour en créer .
Mais je n'ai trouvé aucun tutoriel pour indiquer le chemin à suivre pour en
créer une et par la suite l'utiliser avec le logiciel Excel.
C'est là mon problème. J'aimerais bien apprendre, mais sans exemple, c'est
difficile.


Starwing
Avatar
Dude
essaie ça :

Private Declare Function GetUserName Lib "advapi32.dll" Alias
"GetUserNameA"(ByVal lpBuffer As String, nSize As Long) As Long
Function UserNameWindows() As String

Dim lngLen As Long
Dim strBuffer As String

Const dhcMaxUserName = 255

strBuffer = Space(dhcMaxUserName)
lngLen = dhcMaxUserName
If CBool(GetUserName(strBuffer, lngLen)) Then
UserNameWindows = Left$(strBuffer, lngLen - 1)
Else
UserNameWindows = ""
End If
End Function





"Starwing" wrote in message
news:OldpC$
Bonjour Hervé,
Je sais qu'en VBA c'est impossible de créer une DLL ;-).
Il faut utiliser un logiciel comme Visual C++, pour en créer .
Mais je n'ai trouvé aucun tutoriel pour indiquer le chemin à suivre pour
en
créer une et par la suite l'utiliser avec le logiciel Excel.
C'est là mon problème. J'aimerais bien apprendre, mais sans exemple, c'est
difficile.


Starwing




Avatar
Dude
Désolé, j'avais mal compris ta réponse....
Allez, je vais aller m'acheter des neurones.

"Starwing" wrote in message
news:
Bonjour,

J'aimerais savoir s'il y a au moins une personne qui a un tutoriel sur la
façon de créer une DLL sur Excel, avec un exemple en main, pour faciliter
la
compréhension. J'ai beau fouiller sur Google, mais je n'ai rien vu de
vraiment explicatif. Juste des survols comme:
"Ça se fait, mais on ne vous dit pas comment" ;
"Ça prend du C ou du C++"; etc...
J'ai trouvé un exemple mais...en Delphi..Beuark!!

Sagit-il d'un secret???

Merci d'avance à ceux qui me mettront sur une piste sérieuse.

Starwing




Avatar
MichDenis
Bonjour Starwing,

C'est possible si tu possède le programme "Visual Basic" (ne pas confondre avec VBA)


Salutations!



"Starwing" a écrit dans le message de news:
Bonjour,

J'aimerais savoir s'il y a au moins une personne qui a un tutoriel sur la
façon de créer une DLL sur Excel, avec un exemple en main, pour faciliter la
compréhension. J'ai beau fouiller sur Google, mais je n'ai rien vu de
vraiment explicatif. Juste des survols comme:
"Ça se fait, mais on ne vous dit pas comment" ;
"Ça prend du C ou du C++"; etc...
J'ai trouvé un exemple mais...en Delphi..Beuark!!

Sagit-il d'un secret???

Merci d'avance à ceux qui me mettront sur une piste sérieuse.

Starwing
Avatar
Starwing
Bonjour MichDenis,

Justement, je l'ai le programme Visual C++, et paraîtrait que l'on peut
créer des DLL et des XLL à partir de ce programme. Mais je ne trouve aucune
documentation qui montre comment réaliser un simple petit programme en C++
pour le transformer en DLL ou XLL et de le faire fonctionner sur Excel...

Serait-ce un secret que personne ne veux dévoiler???

--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
Starwing

--
Avatar
valentin
Bonjour,
On peut créer une DLL dans n'importe quel langage
Microsoft ( C , C++ ou même VB ).
Le principe de la DLL est de fabriquer un composant
dont l'intérêt est qu'il puisse être réutilisé souvent ,
un peu comme une fonction.
Par contre il y a certains avantages à mettre ce composant
sous forme de DLL plutôt que sous forme d'exécutable ( exe activex)
je ne rentre pas davantage dans les détails.

Je veux par exemple me constituer un composant pour les 4 opérations
( plus , moins et multiplier ) , que je considère avoir besoin
d'utiliser souvent pour justifier une telle conception.

Sous VB6 , je crée donc un module de classe qui s'appelle
MesQatreOperations , dans lequel j'écris le code de ces
4 opérations ( 3 en fait , dans l'exemple ).

le code est le suivant :

Public Function Plus(ByVal a As Single, ByVal b As Single) As Single
Plus = a + b
End Function

Public Function Moins(ByVal a As Single, ByVal b As Single) As Single
Moins = a - b
End Function

Public Function Multi(ByVal a As Single, b As Single) As Single
Multi = a * b
End Function

j'ai fait cela sous forme de fonctions car plus simple à utiliser.


Je compile alors ma DLL qui sera enregistrée automatiquement dans la base
des registres Windows ( dans le cas contraire , il faut l'enregistrer avec
le programme Regsvr32.exe ).


Puis dans Excel , je vais utiliser ma DLL pour les 4 opérations
par rapport à deux cellules.

Tout d'abord , il faut mettre dans Excel la référence à cette DLL
avec ajouter une référence , cela permettra de créer une instance
de mon nouvel objet ( ma DLL ) et donc de l'utiliser.

Voici le code de la procédure Excel par exemple :

Sub TestMaDll()
' variable objet
Dim objOpe As MesQuatreOperations.cOPeration
' instanciation de mon objet
Set objOpe = New MesQuatreOperations.cOPeration

Dim valeur1 As Single
Dim valeur2 As Single
' récuparation des valeurs des cellules d'excel
valeur1 = Range("A1").Value
valeur2 = Range("A2").Value

' utilisation de mon objet précédemment instancié
MsgBox "addition=" & objOpe.Plus(valeur1, valeur2)
MsgBox "soustraction=" & objOpe.Moins(valeur1, valeur2)
MsgBox "Multiplication=" & objOpe.Multi(valeur1, valeur2)
End Sub

MesQuatreOperations représente le nom du projet sous VB6
cOperation représente le nom du module de classe sous VB6


J'espère avoir été clair sur cet exemple , sans utilité
aucune , si ce n'est pour comprendre le principe.

Dans la pratique on écrit des DLL pour des fonctions +
complexes ( connexion à des BDD , calculs spécifiques ,
etc...)


Bon courage pour la suite.

Valentin

"Starwing" a écrit dans le message de
news:u$
Bonjour MichDenis,

Justement, je l'ai le programme Visual C++, et paraîtrait que l'on peut
créer des DLL et des XLL à partir de ce programme. Mais je ne trouve
aucune

documentation qui montre comment réaliser un simple petit programme en C++
pour le transformer en DLL ou XLL et de le faire fonctionner sur Excel...

Serait-ce un secret que personne ne veux dévoiler???

--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
Starwing

--




Avatar
Starwing
Merci pour ce début d'apprentissage Valentin.

Je vais essayer de prendre l'exemple que m'as décrit et d'essayer de la
faire par moi-même.

J'espère avoir été clair sur cet exemple , sans utilité
aucune , si ce n'est pour comprendre le principe.


C'est justement pour comprendre le principe et la manière de procéder, et si
je peux un jour en créer de plus utililes, alors tant mieux.

--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
Starwing

--

Avatar
MichDenis
Bonjour Starwing,

Je ne crois pas que ce soit un secret... mais ce groupe de discussion n'est sûrement pas le meilleur pour ce que tu
désires faire. Personnellement je ne connais rien au C++ ... je suppose que l'aide du programme doit donner quelques
informations. Si tu adresses ta question au groupe de discussion sur Visual Basic ou autre ... il y a sûrement des
programmeurs chevronnés qui t'indiqueront comment procéder !

Une adresse qui te montre comment créer un projet en C++ , trouver au hasard du Net ...
http://www.francedev.com/cours/cours1.asp


Salutations!


"Starwing" a écrit dans le message de news: u$
Bonjour MichDenis,

Justement, je l'ai le programme Visual C++, et paraîtrait que l'on peut
créer des DLL et des XLL à partir de ce programme. Mais je ne trouve aucune
documentation qui montre comment réaliser un simple petit programme en C++
pour le transformer en DLL ou XLL et de le faire fonctionner sur Excel...

Serait-ce un secret que personne ne veux dévoiler???

--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
Starwing

--
Avatar
Starwing
Merci beaucoup MichDenis, je ne l'avais pas vu celui là...
Si tu en trouves d'autres part hasard, n'hésite pas à me le faire savoir.

--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
Starwing

--
1 2