PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Utilisation de la classe CExcel avec un ActiveX 'EXCEL'
Utilisation de la classe CExcel avec un ActiveX 'EXCEL'
Débuté par christophe.gilbert, 23 jan. 2006 13:06 - 2 réponses
Posté le 23 janvier 2006 - 13:06
J'essaie d'utiliser la classe CExcel donnée en exemple, dans le but de faire une table Excel dans une Feuille WinDEV, avec le retour d'information des évènements d'Excel.

Si j'utilise la classe comme celle livrée dans l'exemple de WD9, c'est à dire avec une zone ActiveX de type "shell.explorer" (navigateur internet), les évènements d'Excel sont inaccessibles. Par contre les fonctionnalités de la classe sont OK (écrire, lire ...)

Pour avoir accès aux évènements, j'ai essayé de déclarer l'ActiveX dans WinDEV comme une feuille Excel "OWC11.Spreadsheet" (Microsoft Office Spreadsheet 11), mais cette zone reste sans action : toutes les commandes OLE / ActiveX vont vers l'application Excel en elle-même, qui a bien mon fichier d'ouvert et correctement renseigné, et non pas sur mon ActiveX.

Merci de votre aide
Posté le 23 janvier 2006 - 13:10
j'utilise ceci

SI ObjetActif("Excel.Application") <> Null ALORS
// Récupération de l'instance de Excel existante
MaFeuilleXLS = ObjetActif("Excel.Application")
SINON
// Allocation de l'objet automation "MaFeuilleXLS"
MaFeuilleXLS = allouer un objet Automation "Excel.Application"
FIN

// Excel devient visible
MaFeuilleXLS>>Visible = Faux
MaFeuilleXLS>>DisplayAlerts(Faux)
// Ouverture d'un classeur d'Excel
MaFeuilleXLS>>Workbooks>>Add()
....

Christophe GILBERT a émis l'idée suivante :

J'essaie d'utiliser la classe CExcel donnée en exemple, dans le but de faire
une table Excel dans une Feuille WinDEV, avec le retour d'information des
évènements d'Excel.

Si j'utilise la classe comme celle livrée dans l'exemple de WD9, c'est à dire
avec une zone ActiveX de type "shell.explorer" (navigateur internet), les
évènements d'Excel sont inaccessibles. Par contre les fonctionnalités de la
classe sont OK (écrire, lire ...)

Pour avoir accès aux évènements, j'ai essayé de déclarer l'ActiveX dans
WinDEV comme une feuille Excel "OWC11.Spreadsheet" (Microsoft Office
Spreadsheet 11), mais cette zone reste sans action : toutes les commandes OLE
/ ActiveX vont vers l'application Excel en elle-même, qui a bien mon fichier
d'ouvert et correctement renseigné, et non pas sur mon ActiveX.

Merci de votre aide



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Posté le 23 janvier 2006 - 16:23
Merci de la réponse, mais elle ne sert à rien : c'est déjà comme cela que fonctionne la classe CExcel.

La question est comment accéder à un ActiveX définit en temps que ActiveXExcel ("OWC11.Spreadsheet") ?

Soit on accède à Excel lui-même, soit il faut utiliser un ActiveX "Internet Explorer", qui bloque l'interception des évènements ...

Merci de vos propositions