fermeture de fichier excel automatiquement

C

christophe

Guest
Bonjour

je cherche une méthode simple en code ou existante par des menus
comment faire pour quitter (fermeture) un fichier excel automatiquement au bout d'un certain temps
de non utilisation. (Fichier partagé et trop souvent laisser ouvert par inavertance).

merci pour vos réponses
christophe
 
@

@+Thierry

Guest
Salut Christophe

Une solution avec un timer.

A mettre dans le Private Module ThisWorkBook
Private Sub Workbook_Open()
Timming
End Sub


A mettre dans un module standard
Sub Timming()
Application.OnTime Now + TimeValue("00:15:00"), "Alert1"
End Sub

Sub Alert1()
MsgBox "veuillez sauvez et quitter l'application"
Application.OnTime Now + TimeValue("00:00:10"), "QUIT"
End Sub

Sub QUIT()
ThisWorkbook.Close True
End Sub

Timming est ici réglé sur 15 Minutes
Une alerte avec un message apparaitra et laissera encore 15 secondes

Ensuite le classeur sera sauvé et fermé...

Si c'est ce que tu veux ? Sinon on peut s'arrêter juste au message Alert1...

Bonne Nuit
@+Thierry
 
T

Ti

Guest
Attention Thierry, tu ne sais pas si le fichier a été utilisé ou pas, c'est d'ailleurs là tout le problème.
Il faudrait faire un test en utilisant les événements Change et Calculate pour voir depuis combien de temps le fichier est inutilisé.
 
S

steplof

Guest
Bonjour à tous

Ne peut on pas (re) déclencher le timer après chaque sélection change?
Ainsi ce serait bien x minutes après derniere utilisation qu'il se fermerait...

Peut être ça ralentirait trop l'éxécution ou cela entrainerait t'il d'autre problemes ou j'ai rien compris au prob (;o))?
qu'en pensez vous?


Steplof
 
@

@+Thierry

Guest
bonjour Steplof, bonjour tout le monde

ce n'est pas aussi simple, il faudrait stopper le timer précédent, car si on a plusieurs timer en même temps c'est le "why"... imagine que le user change de selections 100 fois.... c'est pas si simple...

et même si on calcule vraiment tout bien.... il y aura en fait un tas de macro qui tournerons non-stop soit pour stopper le timer soit pour le lancer et là certainement que l'exécution serait on ne peut plus ralentie...

non je pense toujours qu'un timer de 15 minutes suivi d'un userform d'alerte devrait suffir... si le user ny répond pas le fichier se ferme et redevient dispo.... sinon il répond et "garde la main" un moment de plus...

enfin connaissant Ti, il va trouver mieux.... :)

@+Thierry
 
C

christophe

Guest
bonjour

je tiens d'abord à vous remercier pour toutes vos propositions.

@+thierry j'ai essayé hier soir ton code, c'est vrai il s'enclenche dès l'ouverture de ton
fichier l'inconvénient ensuite, tu ne quittes pas le fichier tant que tu n'a pas validé
ok à ta MSGbox. Mais çà me convennait très bien sous cette forme sans la MSGBOX. Car dans le fichier
ou je veux l'intégrer (c'est un historique de fiche de modification mais c'est un fichier qui sert
également à créer la fiche et ferme ensuite l'historique pour créer un nouveau fichier à base de la
structure de la fiche de modification) donc la personne qui à besoin d'être dans ce fichier n'a pas lieu
de rester plus de 10 minutes (dans la théorie).

Sinon effectivement la proposition de ti me plait car effectivement après un certains temps de
non utilisation le fichier se ferme.

une autre petite question à ce sujet est il possible d'afficher une MSGbox après la fermeture
du fichier pour avertir la personne qu'il est resté trop longtemps dans l'application et quelle sait
fermé toute seul automatiquement.


Merci pour votre aide et toutes vos réponses rapides.
christophe
 
@

@+Thierry

Guest
Salut Christophe et Bonsoir (bonjour) tout le monde

Heu non pas de msgbox une fois que ton fichier est fermé par la macro... ou alors par le biais d'un fichier résident (personal.xls, ou xla). mais par contre tu peux trouver de quoi faire un Userform furtif de bye bye avant la fermeture pour prévenir le user...... et le fichier se fermera... sans intervention sur bouton.

Cherche un peu dans le forum sinon je dois pouvoir te trouver une solution mais là vais au lit....

fais signe

Bonne nuit
@+Thierry
 
C

christophe

Guest
salut thierry

D'accord mais ca veut alors dire si le fichier ce trouve sur un serveur il faut que sur chaque poste il
faut y installer le fichier résident (personal.xls ou intallé la macro complémentaire si fichier xla). heu non si
c'est pour ouvrir un fichier autre personal.xls ...(peut être également mis sur le serveur et je n'ai juste cas lui donné le chemin d'accès)
mais si plusieurs personnes on ouvert se fichier (même en lecture seul) l'autre fichier ne va pas afficher le message car il demandera avant l'accord de lecture
seul du fichier sauf pour le premier qui l'ouvrira.

Petite question par rapport à un fichier résident personal.xls en faites es ce que tu fermes le fichier voulu
et ensuite tu fais appelle à un autre classeur et là tu affiches ta MSGbox de fermeture de ton ancien fichier.
c'est de cela dont tu veux parler.

Sinon pour le userform furtif je trouve que cela n'est pas nécessaire avant la fermeture de ce fichier comme
je pars du principe que la personne n'est pas devant son pc pour le voir car il n'a pas lieu de rester plus de 10 minutes
sauf pour consultation de l'historique.

merci
christophe
 
@

@+Thierry

Guest
Salut Christophe,

Pour le premier paragraphe je n'y comprends rien !! lol "Heu non si heu non si c'est pour ouvrir un fichier autre personal.xls " ??? Le but d'un Personal xls n'est pas d'être sur un server ! of course ! et par conséquent le reste du paragraphe pour les plusieurs personnes qio l'ouvrent n'est pas applicable...

Par définition un personal xls est sur C: ! mais on peut détourner le problème par exemple moi j'ai l'équivalent de chaque personal.xls dans un répertoire Users sur un server..., mais ce n'est pas juste pour un message de bye bye !!! c'est une interface individuelle pour chaque utilisateur (un fichier par User) qui me retourne un tas d'info journalières qui doivent être validées pour être transmises en fin de journée à un AS400... L'avantage évident est que je peux faire des mises à jour le soir ou le week end quand tout le monde n'est pas là.... Mais bon dans ton cas je pense que tu ne vas pas faire çà simplement pour un msgbox !!!


Pour le second paragraphe Il faudrait simplement que le timer soit sur le Personal.xls résident en C: et qu'il soit activé par une macro évènementielle en Worbook_Open de ton fameux fichier en partage... la gestion du timer serait faite depuis le fichier Personal.xls et donc le message "Pendant que vous vous êtes absenté le fichier partagé a été sauvé et fermé à xx:xx " serait géré par ce personal.xls et donc toujours affiché sur l'écran quand ton utilisateur distrait reviendrait de sa pause café une heure après !!! (sacré users y en a qui abusent !!! lol)

Si tu es interressé par des manips de fichiers partagés en réseau j'ai fait un exemple sur disciplus suite à un travail de collaboration il y a plus d'un an :
Message pour fichier déjà ouvert en réseau

Ce sera peut être une raison plus valable de te mettre au travail pour fabriquer et installer un personnal.xls à tous tes users !!!

Bon Dimanche
@+Thierry
 

Discussions similaires

Réponses
2
Affichages
281