Question avant de cliquer sur quitter Excel
c
Bonjour,
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim answer As Integer
answer = MsgBox("Voulez-vous quitter le fichier ?", vbYesNo + vbQuestion, "Quitter")
If answer = vbYes And Worksheets("Validation").Range("G1").Value = 100 Then
Cancel = False
ElseIf answer = vbYes And Worksheets("Validation").Range("G1").Value < 100 Then
MsgBox "Vous n'avez pas complété tous les champs requis avec des astérisques (*) rouges. Vous devez catégoriser chacun des titres d'emplois en veille ou requis et compléter la section d'identification avant de quitter le fichier."
Cancel = True
Else
Cancel = True
End If
End SubSi j'écris quelque chose dans un champ et que je l'efface, Excel me pose cette question :
Je ne veux pas qu'il me pose cette question, et qu'il quitte automatiquement car c'est vide et je lui ai répondu Oui de quitter pourquoi il me la pose deux fois.
Pouvez-vous m'aider ? Merci de votre collaboration!
Bonjour,
Une proposition ?
Cdlt.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim x As Double, Answer As VbMsgBoxResult, Message As String
x = Me.Worksheets("Validation").Cells(7).Value
Answer = MsgBox("Voulez-vous quitter le fichier ?", vbYesNo + vbQuestion, "Quitter")
Select Case True
Case Answer = vbYes And x = 100:
If Me.Saved = False Then Me.Save
Case Answer = vbYes And x < 100:
Message = "Vous n'avez pas complété tous les champs requis avec des astérisques (*) rouges." & Chr(10)
Message = Message & "Vous devez catégoriser chacun des titres d'emplois en veille" & Chr(10)
Message = Message & "ou requis et compléter la sectiond'identification avant de quitter le fichier."
MsgBox Message, 64, "Information"
Cancel = True
Case Else:
Cancel = True
End Select
End SubInvité
Bonjour Catherine41
Normal, pour Excel c'est quand même une modification
Pour éviter ça, tu peux ajouter
If answer = vbYes And Worksheets("Validation").Range("G1").Value = 100 Then
Cancel = False
ThisWorkbook.SaveEdit : Oups salut Jean-Eric
@+
c
Merci Jean-Éric, tu es un génie d'Excel
Est-ce qu'on peut mettre sur deux lignes ce MsgBox aussi:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Worksheets("Validation").Range("A1").Value > 0 Then
MsgBox "Vous n'avez pas complété tous les champs requis avec des astérisques (*) rouges. Vous devez catégoriser chacun des titres d'emplois en veille ou requis et compléter la section d'identification."
Cancel = True
Else
Cancel = False
End If
End SubRe,
Essaie ainsi :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Message As String
If Worksheets("Validation").Range("A1").Value > 0 Then
Message = "Vous n'avez pas complété tous les champs requis avec des astérisques (*) rouges." & Chr(10)
Message = Message & "Vous devez catégoriser chacun des titres d'emplois en veille ou requis et compléter la section d'identification."
MsgBox Message, 64, "Information"
Cancel = True
End If
End SubNota :
J'espère que nous serons pas importuné par notre modérateur !