Enchaînement MsgBox vbYesNo
(J'AI MODIFIE LE CODE PRECEDEMMENT POSTE)
Bonjour,
Je cherche le code pour déclencher plusieurs actions sous condition, le problème étant que j'ai l'impression qu'Excel se perd dans mon code entre les If Else End If.
En schématisant
J'ai deux grandes conditions:
Fermeture Simple
Fermeture non simple
Et dans cette dernière, deux sous conditions:
Pause déjeuné
Non pause déjeuné
Dans certains cas, je demande à Excel un enregistrement puis une fermeture
Dans d'autres, une action puis un enregistrement puis une fermeture
Le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
| Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim w As Workbook
Sheets("Feuil6").Select
Range("B1").Select
Application.Calculation = xlManual
Sheets("Feuil1").Select
Range("A65536").End(xlUp).Select
If MsgBox("FERMETURE SIMPLE?", vbYesNo) = vbYes Then
Call EnregistrerAction("FERMETURE SIMPLE")
On Error GoTo Handler
Handler:
On Error Resume Next
Application.OnTime temps, Procedure:="majHeure", Schedule:=False
Workbooks("TIPI0.xlsm").Close True
Exit Sub
Else
EnregistrerAction ("FERMETURE SESSION")
If MsgBox("PAUSE DEJ?", vbYesNo) = vbYes Then
EnregistrerAction ("FERMETURE SESSION DEJEUNE")
ActiveSheet.Unprotect
MsgBox "A tout de suite " & Environ("UserName")
Range("B65536").End(xlUp).Offset(1, 0).Select
ActiveCell.Formula = "=NOW()"
Selection.Copy
Range("B65536").End(xlUp).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'ThisWorkbook.Save
ActiveSheet.Protect
On Error Resume Next
Application.OnTime temps, Procedure:="majHeure", Schedule:=False
Workbooks("TIPI0.xlsm").Close True
Exit Sub
Else
ActiveSheet.Unprotect
MsgBox "Au revoir " & Environ("UserName")
Range("E65536").End(xlUp).Offset(1, 0).Select
ActiveCell.Formula = "=NOW()"
Selection.Copy
Range("E65536").End(xlUp).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'ThisWorkbook.Save
ActiveSheet.Protect
On Error Resume Next
Application.OnTime temps, Procedure:="majHeure", Schedule:=False
For Each w In Workbooks
'MsgBox w.Name
Call EnregistrerAction("FERMETURE " & w.Name)
w.Close True
Next w
Workbooks("TIPI0.xlsm").Close True
Exit Sub
End If
End If
End Sub |
Est ce que quelqu'un peut m'aider à sortir de ce cercle vicieux.
Merci beaucoup