begin process at 2012 02 15 02:31:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

VBA

 > 

déclaration EXCEL9.OLB et compatibilité de version d'Excel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

déclaration EXCEL9.OLB et compatibilité de version d'Excel

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ée dans : poste, excel, dll, excel9, olb


Répondre à ce message

Sujets en rapport avec ce message

vbfr.dll [ par nitho ] Bonjour à tous!!! Eh les gars j'ai un exécutable créé par vb6 et sur certains poste il marche mais sur un poste, il indique vbfr.dll manquant. Dites q Transporter Excel dans Exe (via une dll ?) [ par CerberusPau ] Bonjour à tous, J'ai beaucoup de mal à trouver des informations pour essayer d'intégrer un fichier Excel (formules et macro VBA) "DANS" un exe (ou un Lire port COM en VBA Excel via port.dll ou rscom.dll [ par hipporigolo ] Bonjour, J'essais de faire communiquer un fichier Excel avec un appareil de labo via un port COM. Via mes recherches ici et sur d'autres sites, je api dans dll pour utilisation dans excel VBA [ par cslcsi ] Bonjour, J'ai créé une dll sous vb6 que j'utilise dans excel vba 98 en déclarant les fonctions. Cela marche bien. Dès que j'inclus ou plus exactement Créer une DLL en VB.NET et l'expliter deouis VBA excel [ par lerian01 ] Bonjour, J'ai développé une grosse application VBA excel avec un tas de modules. Pour des raisons de performances et de dissimulation du code, j'aime 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 10,156 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales