encore plus dur -> Fermer fichier word s'il est ouvert...
Utilisateur WDF
Inscrit:
25/10/2006 10:29
Post(s): 93
Bonjour,

Pour éviter un bug, je devais jusqu'a présent demander à l'utilisateur de fermer un document word s'il etait deja ouvert avant qu'il le génére a nouveau.

On me demande si au lieu de celà il serait possible de :

Dans le cas ou le fichier est deja ouvert, afficher une fenêtre oui-non "Voulez vous fermer le fichier xxx" et le fermer si la personne clique sur oui.

1) Est-ce que du coup je serait obligé de passer par Ole automation pour détecter et fermer le document word (avec le risque qu'il ne le détecte pas s'il n'est pas dans la même instance que celle que je récuppère (post précèdent) ?

2) Est-ce qu'il existe une méthode pour ferme word de manière brutale (sans demander d'enregistrer etc..) ?

Merci beaucoup !

Anak1

Contribution le : 11/12/2006 09:27
Créer un fichier PDF de la contribution Imprimer


Re: encore plus dur -> Fermer fichier word s'il est ouvert...
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
Bonjour,

Oui, il existe un moyen brutal de fermer word :
- Voir l'aide sur la fonction ExeTermine.

Bon dév.,

Totof

Contribution le : 11/12/2006 11:28
_________________
[ Totof(Christophe LOGEL) réalise des développements spécifiques WinDev (Mon annonce wdforge), http://www.sigmasys.fr]
Créer un fichier PDF de la contribution Imprimer


Re: encore plus dur -> Fermer fichier word s'il est ouvert...
Utilisateur WDF
Inscrit:
25/10/2006 10:29
Post(s): 93
Merci a tous !

Pour résoudre le pb, j'ai finalement fait une fonction EstOuvertFichierWord
(sfichierword -> Chemin+NomDufichier)
Elle propose de fermer la fenêtre et renvoi 1 si au final le fichier est resté ouvert.

Si y a 2 instances de word ca marche pas :(... tant pis :p

FONCTION EstOuvertFichierWord(sfichierword)                                  
QUAND EXCEPTION //cas ou l'utilisateur clique sur annuler dans word
	RENVOYER 1  // la méthode close() ne se déroule pas comme prévu
FIN

oWrd est un objet Automation dynamique
PosFichier est un entier
PosFichier=Position(sfichierword,"\",Taille(sfichierword),DepuisFin)
LeFichierWord est une chaîne=sfichierword[[PosFichier+1 A ]]

//On tente de récupérer une instance Word en cours
oWrd = ObjetActif("Word.Application")

//Si instance en cours on en lance une recherche
SI oWrd <> Null ALORS
	nDoc est un entier
	i est un entier 			
	nDoc = oWrd>>Documents>>Count()
	POUR i = 1 A nDoc
		SI Majuscule( oWrd>>Documents(i)>>Name ) = Majuscule(LeFichierWord) ALORS
			SI	OuiNon( "Le fichier " + LeFichierWord + " est déjà ouvert "+RC+" Voulez vous le fermer maintenant ?") ALORS
				oWrd>>Documents(i)>>close()
				libérer oWrd
				RENVOYER 0
			SINON
				RENVOYER 1
			FIN								
		FIN
	FIN
	libérer oWrd
FIN
RENVOYER 0


et je l'apelle comme ca

SI EstOuvertFichierExcel(Fic) ALORS
	RETOUR// le fichier est resté ouvert on ne fait rien
FIN
//traitement

Contribution le : 11/12/2006 14:24
Créer un fichier PDF de la contribution Imprimer


Re: encore plus dur -> Fermer fichier word s'il est ouvert...
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Si plusieurs intance:
oWrd = ObjetActif("Word.Application")
Tantque oWrd <> Null
  //Traitement de fermeture du fichier
  oWrd = ObjetActif("Word.Application")
Fin

Contribution le : 11/12/2006 14:33
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
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