Méthode Open dans l'exemple Windev de Pilotage d'Excel
Stagiaire WDF
Inscrit:
28/11/2005 12:18
Post(s): 4
Bonjour à tous,

dans l'exemple Windev de pilotage d'Excel, l'ouverture d'une fichier se fait par la méthode Navigate.
Mon problème vient du fait que je gère des fichiers Excel avec mot de passe à l'ouverture.
Lorsque l'on ouvre un fichier dans cette config, il ouvre la 'vraie' application Excel en demandant la saisie du mot de passe. Ensuite je me retourve avec mon fichier ouvert dans l'application Windev mais avec aussi un Excel en fond.

Je voudrai pouvoir ouvrir le fichier EXcel en lui précisant le mot de passe pour ne pas avoir cette fenêtre qui apparaît.
La méthode Open permet de le faire mais ça n'a pas l'air de fonctionner dans le cadre d'une ouverture d'un fichier Excel dans l'activex navigateur Web.

Si quelqu'un a une solution ou une alternative, je suis preneur.


Merci d'avance,
Cédric

Contribution le : 28/11/2005 12:21
Créer un fichier PDF de la contribution Imprimer


Re: Méthode Open dans l'exemple Windev de Pilotage d'Excel
Animateur WDF
Inscrit:
17/05/2004 14:21
Post(s): 382
Une petite recherche sur le site ici, vous aurez permis de trouver celà

Tiré de la classe
Citation :

PROCEDURE CExcel::Ouvrir(sClasseur="")
// ouvre un classeur
// sClasseur est le classeur à ouvrir (facultatif)

SI sClasseur="" ALORS
// Sélection ou création d'un fichier Word
sClasseur=fSélecteur("","","Sélectionnez un document...",...
"Document Excel (*.XLS)"+TAB+"*.XLS","XLS",...
fselOuvre)

// Aucun fichier sélectionné
SI sClasseur="" ALORS RETOUR
FIN

QUAND EXCEPTION DANS
// on ouvre le classeur demandé
:m_xExcel>>Workbooks>>Open(sClasseur)
FAIRE
:MsgErreur("Impossible d'ouvrir le classeur.",ExceptionInfo())
RETOUR
FIN

// ce document devient le document en cours
:m_sClasseurEnCours = sClasseur

Contribution le : 28/11/2005 14:56
_________________
Mbsl
Créer un fichier PDF de la contribution Imprimer


Re: Méthode Open dans l'exemple Windev de Pilotage d'Excel
Stagiaire WDF
Inscrit:
28/11/2005 12:18
Post(s): 4
effectivement cela fonctionne bien lorsque l'on ait sous Excel même. Mais dans l'exemple Windev, on utilise un ActiveX navigateurWeb et dans ce cas, ça marche pas.
Je veux garder ce principe car cet activeX permet d'encapsuler le fichier ouvert dans l'application.

Donc je me pose la question à savoir si il y a un moyen de contourner cette erreur (dans l'exemple Windev, la méthode utilisée pour ouvrir un fichier est Navigate (avec l'association fichier<->extension, Excel est lancé, du moins il apparaît dans le gestionnaire de processus)).

J'espère être un peu plus clair.


Cédric

Contribution le : 28/11/2005 18:26
Créer un fichier PDF de la contribution Imprimer


Re: Méthode Open dans l'exemple Windev de Pilotage d'Excel
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour,
Il vous faut savoir que l'activeX est aussi une instance OLE automation d'excel.
Par conséquent, avec les méthodes de la classe pré-citée, vous pouvez faire des procédures locales qui manipulent alors le champ activeX et non plus une instance d'objet Ole Automation.
Evidement, vous deviez aussi être en mesure de manipuler le champ directement mais j'ai pas évalué le transit d'instance...

Peut être alors un jeux sur l'héritage...

Contribution le : 28/11/2005 20:27
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Méthode Open dans l'exemple Windev de Pilotage d'Excel
Stagiaire WDF
Inscrit:
28/11/2005 12:18
Post(s): 4
Bonjour,

j'avoue ne pas tout saisir.

Mais voici une schématisation de mon cas de figure.

1er cas : on utilise Excel normalement et là ça fonctionne
allocation d'un objet OLE Excel et on le rend visible (Excel s'ouvre)
ouverture du fichier via la méthode Open avec mes différents paramètres (mot de passe, ...)
tout est ok
sauf que mon fichier est ouvert dans Excel lui-même

2ème situation : en utilisant l'activeX utilisé dans l'exemple Windev de pilotage d'Excel (l'activeX utilisé est Navigateur Web) ce que je souhaite faire pour encapsuler mon fichier dans mon appli.
J'ouvre un fichier Excel quelconque avec la méthode Navigate.
Le fichier est ouvert dans mon application avec l'application associée au fichier que je viens d'ouvrir
Je fais une récupération d'objet avec la commande ObjetActif pour créer mon lien OLE avec l'instance Excel qui vient de se créer automatiquement. Je peux ensuite faire tout sorte de manip sur mon fichier via des commandes OLE (de mise en page, modif de contenu de cellule., je peux sauvegarder mon fichier, ... tout ça marche très bien).
Mais lorsque j'appelle la méthode Open pour ouvrir un autre fichier (dans mon cas, fichier avec mot de passe) : j'ai un message d'erreur.

Comme si le fait de passer par cet activeX (avec tout de même une instance Excel derrière) limitait le pilotage d'Excel à un certain nombre de méthodes.

Pour terminer, j'ai essayé en ajoutant une macro (qui ouvre en fait un autre fichier) dans mon fichier bidon ouvert au début. Quand j'ouvre ce fichier directement sous Excel et que j'exécute ma macro, il m'ouvre bien mon autre fichier. Quand je fais le même test en appelant la méthode depuis mon appli : j'ai un message d'erreur comme quoi la commande Open a échoué.
Sinon j'aiessayé la méthode Close : elle n'a aucun effet.
Après réflexion, quand on est sous Excel, la méthode Open ouvre le fichier passé en paramètre en tant que fichier supplémentaire. Comme dans mon cas, on est dans l'équivalent d'un navigateur, il ne peut pas ouvrir plusieurs fichiers en même temps, de même ce n'est pas possible de fermer un fichier ouvert dans un navigateur.

Peut être finalemetn que ce que je souhaite faire n'est pas possible en tout cas avec l'activeX Navigateur Web.

si vous connaissez une autre méthode que la méthode Open ou un activeX qui permettrait de gérer ce que je souhaite faire, je suis preneur


Cédric

Contribution le : 29/11/2005 10:12
Créer un fichier PDF de la contribution Imprimer


Re: Méthode Open dans l'exemple Windev de Pilotage d'Excel
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour et merci d'accepter mes excuses pour ma mécompréhension.

En effet, l'exemple dont vous parlez utilise bien le navigateur Web comme conteneur de la fauille de calcul. L'inconvérient est qu'il n'y permet aucune intervention programmé en raison de sa mécompréhension des méthodes OLE Excel. En effet, s'il supporte le forma en lecture, il n'hérite pas de l'objet OLE automation (contrairement à ce que j'ai annoncé).

Par conséquent, et à ma connaissance, il n'existe pas 36 voies pour manipuler un classeur par programmation et l'afficher DANS une fenêtre.

1- Utiliser un vrai activeX tableur.

2- utiliser conjointement un objet OLE Automation (pour les manipulations) et afficher le résultat dans l'activeX Navigateur Web (ou un champ html il me semble). Evidement, cette solution ne permettra pas à vos utilisateur d'utiliser les fonctionnalités du tableur, leur capacité étant alors limités à la consultation de la feuille de calcul.

Contribution le : 29/11/2005 10:28
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Méthode Open dans l'exemple Windev de Pilotage d'Excel
Stagiaire WDF
Inscrit:
28/11/2005 12:18
Post(s): 4
pas de souci !!

le pb n'est pas simple et j'ai passé pas mal de temps à faire des tests.
Je vais étudier la piste de l'activeX dont vous m'avez donné l'URL.


Merci en tout cas,
Cédric

Contribution le : 29/11/2005 11:08
Créer un fichier PDF de la contribution Imprimer


Re: Méthode Open dans l'exemple Windev de Pilotage d'Excel
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Le hic avec cet activeX est bien son prix. D'autant que je ne le pense plus libre de diffusion comme ce fut le cas.
Mais sa qualité est exemplaire.
Il fut le support de mes recherches à l'époque qui a vu surgir ma première ressource qu'est la classe cExcel [émotion].

Contribution le : 29/11/2005 11:23
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2