Bonjour à tous,
Dans le cadre de mon travail on me demande s'il est possible de fermer un fichier calc après un certains laps de temps d'inactivité.
Quelqu'un aurait-il une idée ou une piste pour réaliser cela ?
[Résolu][Calc] fermer un fichier après 15 min d'inactivité
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
r@p@ce15
- Fraîchement OOthentifié
- Messages : 9
- Inscription : 29 nov. 2006 12:58
[Résolu][Calc] fermer un fichier après 15 min d'inactivité
Dernière modification par r@p@ce15 le 06 avr. 2010 10:59, modifié 2 fois.
OOo v.2.3.0
WinXP Pro SP2
WinXP Pro SP2
-
Dude
- IdOOle de la suite

- Messages : 26200
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] Inactivité d'un fichier
Salut,
Il convient de définir ce que tu appelles "laps de temps" : une heure donnée ou une temporisation. Cela peut se faire en générant un sémaphore.
Ensuite, il suffit d'écouter la feuille. En faisant une recherche sur "listener", tu trouveras des exemples.
Le terme "inactivité" est génant car il conviendra de régénérer le sémaphore.
La fermeture se fera avec un ThisDocument.close(true). Je n'aborde pas la problèmatique de l'enregistrement de données.

Ton titre ne reflète donc pas le problème exposé. Merci de corriger afin de faciliter les recherches ultérieures.r@p@ce15 a écrit :fermer un fichier calc après un certains laps de temps d'inactivité.
Il convient de définir ce que tu appelles "laps de temps" : une heure donnée ou une temporisation. Cela peut se faire en générant un sémaphore.
Ensuite, il suffit d'écouter la feuille. En faisant une recherche sur "listener", tu trouveras des exemples.
Le terme "inactivité" est génant car il conviendra de régénérer le sémaphore.
La fermeture se fera avec un ThisDocument.close(true). Je n'aborde pas la problèmatique de l'enregistrement de données.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Améliorez AOO et votez pour les issues
-
r@p@ce15
- Fraîchement OOthentifié
- Messages : 9
- Inscription : 29 nov. 2006 12:58
Re: [Calc] fermer un fichier après 15 min d'inactivité
Merci pour ta réponse,
J'ai comme indiqué modifié le titre, j'espère qu'il est plus adéquat.
Je recherche donc avec listener et sémaphore...
je ne mets pas résolu tout de suite, je mettrais un lien vers les posts qui m'auront aidés.
J'ai comme indiqué modifié le titre, j'espère qu'il est plus adéquat.
Je recherche donc avec listener et sémaphore...
je ne mets pas résolu tout de suite, je mettrais un lien vers les posts qui m'auront aidés.
OOo v.2.3.0
WinXP Pro SP2
WinXP Pro SP2
-
r@p@ce15
- Fraîchement OOthentifié
- Messages : 9
- Inscription : 29 nov. 2006 12:58
Re: [Calc] fermer un fichier après 15 min d'inactivité
Chose promise chose due...
Voici le pistes que j'ai utilisée pour résoudre mon problème.
Le post suivant : avec notamment le Fichier d'Alain de La Chaume qui m'a permis d'afficher la date...
Ensuite, le problème des listeners m'a paru par trop complexe pour gérer l'inactivité. J'ai donc décidé de faire un test toutes les 30secondes afin de voir si le fichier avait été modifié. Si oui, on remet la temporisation à 0 et on enregistre automatiquement si non, le décompte continue jusqu'à fermeture.
Les données :
la cellule A1 contient la valeur de la tempo en minutes
La cellule B1 contient la formule suivante : =MAINTENANT() + TEMPS(0;A1;0)
Ce qui donne
Voici le pistes que j'ai utilisée pour résoudre mon problème.
Le post suivant : avec notamment le Fichier d'Alain de La Chaume qui m'a permis d'afficher la date...
Ensuite, le problème des listeners m'a paru par trop complexe pour gérer l'inactivité. J'ai donc décidé de faire un test toutes les 30secondes afin de voir si le fichier avait été modifié. Si oui, on remet la temporisation à 0 et on enregistre automatiquement si non, le décompte continue jusqu'à fermeture.
Les données :
la cellule A1 contient la valeur de la tempo en minutes
La cellule B1 contient la formule suivante : =MAINTENANT() + TEMPS(0;A1;0)
Ce qui donne
Code : Tout sélectionner
REM ***** BASIC *****
option explicit
Private oDoc as object
Sub Main
oDoc = thisComponent
oDoc.calculate
decompte()
End Sub
Sub decompte()
dim oFeuil as object, oTime as object
Dim Hrs as integer, Min as integer, Sec as integer
Dim Tempo as variant
Dim hFerm As string, hMaint As string
REM instructions de la macro
oFeuil = oDoc.sheets.getByName("A_masquer")
oTime = oFeuil.getCellRangeByName("B1")
'xRay oTime
Hrs = Hour(oTime.Value)
Min = Minute(oTime.Value)
Sec= Second(oTime.value)
hMaint = TimeSerial(Hour(now),Minute(now),Second(now))
hFerm = Timeserial(Hrs, Min, Sec)
Tempo = Timevalue(hFerm) - Timevalue(hMaint)
Min = Minute(Tempo)
Sec = Second(Tempo)
If oDoc.isModified then
' MsgBox "Ok Modifié" & chr(13) & "On remet à 0",64,"Modifié ?"
oDoc.calculate
oDoc.Store
Call decompte
else
' MsgBox "Pas Modifié" & chr(13) & "On continue",64,"Modifié ?"
oDoc.setTitle("Attention ce fichier va se fermer dans moins de " & Min & " minute(s) et " & Sec & " seconde(s)")
if hMaint = hFerm then
thisComponent.store
thisComponent.close(True)
exit sub ' SORTIE CONDITIONNELLE
end if
endif
Wait 30000
Call decompte
End SubOOo v.2.3.0
WinXP Pro SP2
WinXP Pro SP2