Bonjour tout le monde,
Meilleurs vœux pour la nouvelle année, vœux de santé d’abord !
Je recherche une macro permettant la sauvegarde suivie de la fermeture d’un fichier en cas d’inactivité.
J’en possède une mais qui ne fonctionne pas hélas…dont voici le contenu ci-dessous.
Je vous remercie soit par les corrections à apporter soit par une nouvelle macro déjà existante…
Excellente journée à vous et prenez grand soin de vous
Jacques
Option Explicit
Dim oDlg as Object
Dim OuiNon as Boolean
Sub Main
'Macro déclenchée à l ouverture du classeur'
Dim lSec as long, lMin as long, intx as Integer
Dim MonTemps as String
For intx = 1 To 2
lSec = Timer
lMin = lSec / 60
lMin = lMin Mod 60
MonTemps = lMin & ":" & lSec Mod 60
Select Case MonTemps
Case "0:0" , "15:0" , "30:0" , "45:0"
'A heure pile puis toutes les 15 minutes, appelle de la procédure InitDelai '
InitDelai
End Select
intx = intx - 1
Next
End Sub
Sub InitDelai
'Initialisation de la variable OuiNon'
OuiNon = False
OuvrirDialog
Delai
End Sub
Sub OuvrirDialog
'Ouverture du dialogue'
Dim bibli As Object, monDialogue As Object
DialogLibraries.LoadLibrary("Standard")
bibli = DialogLibraries.GetByName("Standard")
monDialogue = bibli.GetByName("Dialog1")
oDlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
oDlg.Visible = True
End Sub
Sub Delai()
Dim monEtiquette as Object , I as Integer
'Temporisation pour la fermeture du document si pas de réponse'
monEtiquette = oDlg.getControl("lblDelais")
For I = 10 To 0 Step -1
Wait 1000
monEtiquette.Text = I & " Secondes"
If OuiNon = True Then Exit For
If monEtiquette.Text = 1 & " Secondes" Then
oDlg.Visible = False
saveandclose
End If
Next
End Sub
Sub Bouton(oEv As Object)
Select Case oEv.Source.Model.Name
'L utilisateur clique sur le bouton Oui'
Case "cmdOK"
oDlg.Visible = False
OuiNon = True
'Il clique sur le bonton Non'
Case "cmdClose"
oDlg.Visible = False
saveandclose
End Select
End Sub
Sub saveandclose
'Si le document à été modifié on sauvegarde et on ferme, sinon on ferme'
Dim oDoc As Object
oDoc = ThisComponent
If oDoc.isModified = True Then
oDoc.Store
oDoc.Close(True)
Else
oDoc.Close(True)
End If
'on arrête les procédures éventuellement en cours '
End
End Sub