Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : déclaration EXCEL9.OLB et compatibilité de version d'Excel [ Archives Visual Basic / VBA ] (xphilippe)

mercredi 11 août 2004 à 13:57:15 | déclaration EXCEL9.OLB et compatibilité de version d'Excel

xphilippe

Membre Club
bonjour à tous
- j'ai créé une DLL contenant une routine qui manipule le Workbook qu'on lui passe par référence (dans la DLL j'inclus la référence à EXCEL9.OLB ce qui me permet de manipuler les objets type Range, Workbook ..... )
- je l'ai installée avec regsvr32
- je l'ai Instancié depuis mon fichier Excel (dim oMyDLL as....)
- j'ai fait modifier mon fichier excel en lançant une macro qui
appelle la routine contenue dans la DLL

Mais il me reste le petit problème suivant:
- sur mon poste ça marche bien
- sur un autre poste ça marche pas.
Je pense que cela vient que EXCEL9.OLB n'est pas installé sur l'autre poste.

1) comment faire pour installer EXCEL9.OLB sur le poste client
2) est ce que si je fournis EXCEL9.OLB avec l'installation de la DLL cela marchera pour toutes les versions d'EXCEL 97-2000-2003 ...


merci de votre aide
:: Xavier ::

mercredi 11 août 2004 à 14:40:24 | Re : déclaration EXCEL9.OLB et compatibilité de version d'Excel

ITALIA

Membre Club
Pour excel 97 c'est Excel8.olb....

Dans ton Projet tu as coché Projet...Références...Microsoft Excel 9.0 Object Library..

Vaudrait mieux le creer dynamiquement je pense :

Dim exlapp As Object
Set exlapp = CreateObject("excel.application")


It@li@

mercredi 11 août 2004 à 14:56:20 | Re : déclaration EXCEL9.OLB et compatibilité de version d'Excel

xphilippe

Membre Club
merci pour ta célérité It@li@ :-)

mais ... (oui mais ...) ça va pas vraiment marcher.

En fait, j'ai un classeur avec une macro, (ex: écrire dans la cellule A1, mais en vérité c'est un peu plus complexe ... ), et je souhaite protéger la macro un peu plus qu'avec le simple mot de passe VBA.

Ainsi, dans le fichier Excel, je déclenche une macro qui appelle une procédure encapsulée dans un DLL.
depuis Excel:

référence à Projet1.dll
sub macroExcel
dim oDLL as Projet1.Class1
set oDLL = New Projet1.Class1
Call oDLL.MaProcedure(activeworksheet)

Dans la DLL

Référence à EXCEL9.OLB
sub MaProcedure(xlsheet as Excel.Worksheet)
xlsheet.range("A1").value = "Bonjour"
end sub


Voila voila
Donc si quelqu'un pourrait m'aider à contourner le problème ou bien trouver un moyen pour inclure EXCEL9.OLB dans la distribution de mon projet et faire en sorte que ça marche avec toutes les versions d'Excel.......

a toute
xavier




mercredi 11 août 2004 à 15:39:09 | Re : déclaration EXCEL9.OLB et compatibilité de version d'Excel

PhilippeE

Réponse acceptée !
Excel.olb, Excel9.olb, Excel10.olb et TOUTES les versions NE SONT PAS DISTRIBUABLES !!!

Donc :
1. Tu programmes avec Excel9.olb coché
2. Tu valides le fonctionnement de ton programme
3. Tu déclares toutes les constantes Excel que tu as utilisé dans ton programme VB de façon à les avoir dans les portées de tes procédures
4. Tu décoches Excel9.olb
5. Tu remplaces tous les objets Excel (de Excel.Application à Range) par des objets de type Object.
6. La création de l'instance Application ne se fait plus de la façon suivante Set xlApp = New Excel.Application mais de cette façon Set xlApp = CreateObject("Excel.Application")
7. Pour reprendre ton exemple
Sub MaProcedure(xlsheet as Object)
xlsheet.Range("A1").Value = "Bonjour"
End Sub

mercredi 11 août 2004 à 15:55:46 | Re : déclaration EXCEL9.OLB et compatibilité de version d'Excel

ITALIA

Membre Club
tient tient ca ressemble a ce que j'ai mis......

lol

It@li@

mercredi 11 août 2004 à 16:04:11 | Re : déclaration EXCEL9.OLB et compatibilité de version d'Excel

xphilippe

Membre Club
Merci, c'est exactement ce que je cherchais,
et je suis étonné que ce soit si simple.

Entre autre, j'avais déclaré dans sub MaProcedure un object Range

Dim rgCellule as Range

et bien maintenant que j'ai supprimé la référence à Excel, il faut que je fasse

Dim rgCellule as Object
et ensuite
xlSheet.rgCellule.offset(i,j).Value = ....

Et finalement je pense que je n'aurai aucun problème avec les différentes version d'Excel.

Merci encore

mercredi 11 août 2004 à 16:08:05 | Re : déclaration EXCEL9.OLB et compatibilité de version d'Excel

xphilippe

Membre Club
Merci Italia
mais tu vois, ce que tu décrivais c'est comment générer une nouvelle instance d'Excel.
Or je voulais juste pouvoir appeler une DLL depuis une instance d'Excel pour manipuler cette même instance ....
Bref en utilisant
as Object
directement dans le projet VB, ça marche et ça me permet de décocher la référence à Excel9.olb

sans rancune ;-)

xavier un peu long à la détente ....

mercredi 11 août 2004 à 16:19:35 | Re : déclaration EXCEL9.OLB et compatibilité de version d'Excel

ITALIA

Membre Club
Non pas de Rancune ....

It@li@

lundi 13 décembre 2004 à 20:02:16 | Re : déclaration EXCEL9.OLB et compatibilité de version d'Excel

damran

Bonjour
Super intéréssant tout ca. :-)
Mais comment fait-on pour les variables du genre : xlAutomatic, xlEdgeTop ... ? On redéclare tout ?

--
Damran

mardi 14 décembre 2004 à 08:26:48 | Re : déclaration EXCEL9.OLB et compatibilité de version d'Excel

ITALIA

Membre Club
Non pas la Peine de declarer ces variables
un peu comme quand tu utilises l'objet printer :

Ex : Printer.PrintQuality = vbPRPQHigh

tu ne declare en aucun cas vbPRPQHigh, le programme le comprend.

It@li@


1 2 3

Cette discussion est classé dans : poste, excel, dll, excel9, olb


Répondre à ce message

Sujets en rapport avec ce message

DLL RS232 pour excel VBA [ par Bob ] Existe-t-il une DLL qui permette de faire une acquisition s ur le port RS232 et d'en afficher la valeur dans une feuille de calcul EXCEL ? C'est kiki qu'à déjà créé un dll avec Excel ? [ par DarkVader ] VBA et DLLLa doc d'Excel étant très légère sur le sujet,je fais appel à la foule pour me décrire la méthode MakeCompiledFile, ses limites, possibilité Question pour les experts ! [ par Manu ] Bonjour,j'ai écrit une petite DLL qui contient un procédure simple. Elle ouvre un classeur Excel, le sauvegarde au format CSV et quitte Excel.Tout fon APPEL DE DLL SOUS EXCEL [ par directdata2 ] Bonjour,Je n'arrive pas à exécuter une DLL créée sous VC++ 6.0 à partir d'une ligne de code VBA d'une feuille Excel.Par contre l'appel de la fonction Erreur avec une dll en utilisant une automation avec Excel [ par roda ] J'ai créé une automation entre Access 97 et Excel 97.Sur la majorité des poste tout fonctionne sauf quelqu'uns. Je m'explique : Lorsque je lance mon a CreateObject ActiveX dll sur poste distant [ par bavmorda ] Bonjour, Je souhaiterai utiliser la méthode server.CreateObject dans une page asp pour créer un objet à partir d'une dll vb ActiveX située sur un autr DLL et Excel [ par Yomi ] Bonjour, j'ai besoin d'aide car je coince....J'écris une DLL en C++BOOL WINAPI DllEntryPoint( HINSTANCE hinstDLL, // handle of DLL module DWORD fdwRea dll msjet40.dll [ par bobydi ] j'utilise la référence dao360.dll dans mon projet vb pour accèder à une base access2000, et lors de l'installation de l'éxecutable sur un poste j'ai l pilotage excel par Vb avec dll au chargement [ par blister ] Pas de problême pour piloter Excel via VB mais en fait j'ouvre une instance qui ne possede pas un addin necessaire au traitement.Je voudrait en ouvran importer dll en VB sous Excel [ par redgeyes ] bonjour tout le monde,J'ai un souci, j'ai développé un formulaire sous excel qui est utilisé par beaucoup de personnes, malheureusement, ces personnes


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,780 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.