XL 2013 boite de dialogue enregistrer sous

Bnj

XLDnaute Occasionnel
bonjour

Je possède un classeur avec une macro se lançant au démarrage qui ferme automatiquement le classeur en question au bout de X minutes.
Mon classeur s'ouvre en lecture seule.

Je souhaite une macro qui empêche l'ouverture de la boite de dialogue "enregistrer une copie" à la fermeture lorsque le temps limite est atteint.
j'ai essayé ceci mais cela ne marche pas :
Private Sub Workbook_Beforesave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = SaveAsUI
End Sub

ou

Private Sub Workbook_Open()
Application.DisplayAlerts = False
temp = Now + TimeValue("00:30:00")
Cancel = SaveAsUI
Application.OnTime temp, "arret"
End Sub
 

grisan29

XLDnaute Accro
bonjour Lone-wolf,Bnj et le forum
une autre façon de sauver le classeur en fermant par la croix et en l'enregistrant sous et en prenant le nom dans une cellule
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
     On Error GoTo erreur
     varname = Sheets("Feuil1").Range("g17").Value
     fname = InputBox("enregistrer le fichier sous le nom", "Enregistrement", varname)
     ActiveWorkbook.SaveAs Filename:=fname
     Exit Sub
    erreur:
      rep = MsgBox("Une erreur c'est produite, voulez vous quitter sans sauvegarder", vbYesNo)
      If rep = 7 Then Cancel = True
    End Sub

il y a un msgbox qui s'ouvre afin de demander s'il faut sauver sous le nom qui est en ("g17") ou sous un autre nom ou ailleurs en changeant "g17"
avant il faut cocher enregistrer dans les option d'excel pour retrouver le fichier
 

Bnj

XLDnaute Occasionnel
bonjour,

En fait, je souhaite que le classeur (qui est ouvert en lecture seule) se ferme automatiquement sans demander si l'on veut enregistrer , donc une fermeture pure et simple du classeur sans boite de dialogue enregistrer sous par exmple
 

Bnj

XLDnaute Occasionnel
bonjour lone-wolf, bonjour grisan29

merci de vous intéresser à mon souci.
Cependant, lone-wolf, ta solution n'empêche pas l'apparition de la boite de dialogue enregistrer une copie à la fermeture automatique du classeur
et grisan29, ce n'est pas ce que je recherche

encore merci
 

job75

XLDnaute Barbatruc
Bonjour Bnj, Lone-wolf, grisan29,

A placer dans ThisWorkbook :
Code:
Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:30:00"), "ThisWorkbook.Arret"
End Sub

Sub Arret()
Me.Saved = True
If Workbooks.Count = 1 Then Application.Quit Else Me.Close
End Sub
Nota : dans un 1er temps j'avais utilisé inutilement une Workbook_BeforeSave.

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 655
Messages
2 111 605
Membres
111 217
dernier inscrit
aladinkabeya2