sebkil28
XLDnaute Nouveau
Bonjour à tous,
J'ai un fichier pour des notes de frais dans lequel je fais un contrôle de certains champs au moment de l'enregistrement.
J'ai donc une macro dans la procédure Workbook_BeforeSave.
Avant de faire ce contrôle, je pose une question (A savoir si l'utilisateur à fournit les originaux des justificatifs). Mon problème est que si l'utilisateur répond "Non" je souhaite arrêter l'enregistrement du fichier Excel.
Arrêter la macro, je sais faire, mais arrêter la procédure d'enregistrement d'excel... je sais pas !
D'avance, merci pour votre aide
Le code :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' Pas de contrôle si document vide
If Sheets("NDF EUROS").Cells(4, 3) = "" Then
Exit Sub
End If
' Justificatif ?
response = MsgBox("Avez vous joint les originaux de vos justificatifs ?", vbYesNo + vbExclamation, "Justificatifs")
If response = vbNo Then
Exit Sub ' C'est là je pense où il faut intervenir !!
End If
If response = vbYes Then
' controle
If ActiveSheet.Name = "NDF EUROS" Then
Call controleeuro
End If
If ActiveSheet.Name = "NDF Devises" Then
Call controledevise
End If
Call mois
Sheets("NDF EUROS").Unprotect ""
Sheets("NDF Devises").Unprotect ""
Sheets("NDF EUROS").Cells(45, 3) = Date
Sheets("NDF Devises").Cells(44, 3) = Date
Sheets("NDF EUROS").Protect ""
Sheets("NDF Devises").Protect ""
End If
End Sub
J'ai un fichier pour des notes de frais dans lequel je fais un contrôle de certains champs au moment de l'enregistrement.
J'ai donc une macro dans la procédure Workbook_BeforeSave.
Avant de faire ce contrôle, je pose une question (A savoir si l'utilisateur à fournit les originaux des justificatifs). Mon problème est que si l'utilisateur répond "Non" je souhaite arrêter l'enregistrement du fichier Excel.
Arrêter la macro, je sais faire, mais arrêter la procédure d'enregistrement d'excel... je sais pas !
D'avance, merci pour votre aide
Le code :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' Pas de contrôle si document vide
If Sheets("NDF EUROS").Cells(4, 3) = "" Then
Exit Sub
End If
' Justificatif ?
response = MsgBox("Avez vous joint les originaux de vos justificatifs ?", vbYesNo + vbExclamation, "Justificatifs")
If response = vbNo Then
Exit Sub ' C'est là je pense où il faut intervenir !!
End If
If response = vbYes Then
' controle
If ActiveSheet.Name = "NDF EUROS" Then
Call controleeuro
End If
If ActiveSheet.Name = "NDF Devises" Then
Call controledevise
End If
Call mois
Sheets("NDF EUROS").Unprotect ""
Sheets("NDF Devises").Unprotect ""
Sheets("NDF EUROS").Cells(45, 3) = Date
Sheets("NDF Devises").Cells(44, 3) = Date
Sheets("NDF EUROS").Protect ""
Sheets("NDF Devises").Protect ""
End If
End Sub
Dernière édition: