testez l'ouverture d'un fichier
Le
eric.zzzz
Bonjour,
J'ai un bouton de controle qui me permet de créer un fichier Excel
(macro "TransférerFeuilleCalcul"sur clic). le problème c'est que si on
appuie une 2° fois sur ce bouton, les nouvelles données vont venir
s'écrire sur le 1er fichier.
J'ai fait : Private Sub Form_Load()
On Error Resume Next
Kill "D:\Baf\*.XLS"
Mais je constate que c'est loin d'etre suffisant
Comment faire pour tester si des fichiers excel sont ouverts et
demander à l'utilisateur de les fermer avant de faire un kill? (je
suis preneur de toutes propositions)
merci d'avance
Eric
J'ai un bouton de controle qui me permet de créer un fichier Excel
(macro "TransférerFeuilleCalcul"sur clic). le problème c'est que si on
appuie une 2° fois sur ce bouton, les nouvelles données vont venir
s'écrire sur le 1er fichier.
J'ai fait : Private Sub Form_Load()
On Error Resume Next
Kill "D:\Baf\*.XLS"
Mais je constate que c'est loin d'etre suffisant
Comment faire pour tester si des fichiers excel sont ouverts et
demander à l'utilisateur de les fermer avant de faire un kill? (je
suis preneur de toutes propositions)
merci d'avance
Eric

Poser une question


J'ai un bouton de controle qui me permet de créer un fichier Excel
(macro "TransférerFeuilleCalcul"sur clic). le problème c'est que si on
appuie une 2° fois sur ce bouton, les nouvelles données vont venir
s'écrire sur le 1er fichier.
J'ai fait : Private Sub Form_Load()
On Error Resume Next
Kill "D:Baf*.XLS"
Mais je constate que c'est loin d'etre suffisant ...
Comment faire pour tester si des fichiers excel sont ouverts et
demander à l'utilisateur de les fermer avant de faire un kill...? (je
suis preneur de toutes propositions...)
Il y a ceci, à l'aide des API :
http://www.mvps.org/accessfr/apis/api0007.htm
ou alors par automation...
On Error Resume Next
Set Excel_Application = GetObject(, "Excel.Application")
If Err.Number = 0 Then
Msgbox "Excel déjà ouvert..."
...
exit sub
else
Set Excel_Application = CreateObject("Excel.Application")
End If
Err.Clear
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Je ne sais pas ce que signifie "Err.Number = 0", mais qu'Excel soit
fermé ou ouvert, la condition if est toujours vérifié, autrement dit,
j'ai toujours le message "Excel déjà ouvert..."
J'ai fait F1 sur Err.Number, mais je n'ai pas compris...
J'ai trouvé cette solution...(j'espère qu'elle s'avérera être bonne)
Dim MyFile
MyFile = Dir("D:BafFic1.XLS")
If MyFile = "Fic1.xls" Then
MsgBox "Supprimer Excel dans D:Baf...", vbOKOnly
Exit Sub
End If
Hum, je pense qu'il devait y avoir une instance Excel ouverte mais
invisible, pour être sur il faut utiliser le gestionnaire des taches
ou un utilitaire du style "process explorer"
[..]
Je ne sais pas ce que signifie "Err.Number = 0", mais qu'Excel soit
fermé ou ouvert, la condition if est toujours vérifié, autrement dit,
j'ai toujours le message "Excel déjà ouvert..."
J'ai fait F1 sur Err.Number, mais je n'ai pas compris...
---
On Error Resume Next
- dit de passer à la ligne suivante en cas d'erreur...
Set Excel_Application = GetObject(...)
- retourne une erreur si Excel n'est *pas* démarré
mais... le exit sub est de trop ;-)
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)