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 86 87 88 89 90 91 92 93 94
| '**********************************************************************************************************
'*********************************** Fonctions VBA par Jean-Baptiste*********************************
'******************************************** MAJ 4 juillet 2013 ********************************************
'**********************************************************************************************************
' Déclaration de la variable publique "drapeau": cette variable sert à savoir où on en est dans le déroulement de la saisie
Option Explicit
Dim drapeau As Integer
' Détection de l'ouverture de la fiche d'évaluation
Private Sub Workbook_Open()
'Déclaration du mot de passe
Dim Mot_de_Passe As String
Mot_de_Passe = "IPAG"
' Désactivation du bouclier
ActiveSheet.Unprotect (Mot_de_Passe)
' Ré-activation du bouclier
ActiveSheet.Protect Password:=Mot_de_Passe, DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
' Actualisation de la variable d'état: drapeau
drapeau = 1
End Sub
' Détection de l'enregistrement de la fiche d'évaluation
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If drapeau = 2 Then
' Messages avant enregistrement
'Pour effectuer une action avant l'enregistrement: positionner le code ici
' Message relatif au remplissage du mini fichier Taux de Capitalisation ssi au moins un des postes est clos
If Range("A2").Value = "Statut Dossier: Clos" Or Range("A2").Value = "Statut Dossier: En cours dont certains postes clos" Then
MsgBox "Au moins un des postes est clos. Merci donc de bien vouloir saisir les nouveaux champs en bas de la fiche d'évaluation avant la sauvegarde"
Rows("204:223").Select
End If
'Message relatif à la saisie effective des 3 cellules violettes A1, A2 et A3
MsgBox "Avant de fermer le document, merci de veiller à ce que les informations colorées en violet soient à jour, en haut à gauche de la fiche d'évaluation: Pour un sinistre donné, une seule fiche d'évaluation doit avoir son statut validé." _
& " Pour un sinistre donné, une seule fiche d'évaluation doit avoir son statut validé, et cette fiche doit être exhaustive: tous les postes concernés par le sinistre doivent être saisis"
' Condition sur actualisation des données de statut - si remplissage incomplet -> enregistrement annulé
If (Range("A1").Value = "Statut Fiche: -----> A Remplir" Or Range("A2").Value = "Statut Dossier: ---> A Remplir" Or Range("A3").Value = "Etat Victime: -----> A Remplir") Then
MsgBox "Attention: Au moins un des renseignements en haut à gauche de la fiche, en orange, cellules A1, A2 ou A3 n'a pas été actualisé"
Cancel = True
End If
End If
End Sub
' Détection de la fermeture de la fiche d'évaluation
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If drapeau = 2 Then
' Messages avant enregistrement
' Message relatif à la saisie effective des 3 cellules violettes A1, A2 et A3
'Pour effectuer une action avant l'enregistrement: positionner le code ici
' Condition sur actualisation des données de statut - si remplissage incomplet -> Fermeture du classeur annulée
If (Range("A1").Value = "Statut Fiche: -----> A Remplir" Or Range("A2").Value = "Statut Dossier: ---> A Remplir" Or Range("A3").Value = "Etat Victime: -----> A Remplir") Then
MsgBox "Attention: Au moins un des renseignements en haut à gauche de la fiche, en orange, cellules A1, A2 ou A3 n'a pas été actualisé" & vbCrLf & vbCrLf & "La fermeture de ce document est donc annulée"
Cancel = True
Else
MsgBox "Merci d'avoir effectué la saisie selon le nouveau process établi"
End If
End If
End Sub
' Détection de la première modification de la fiche d'évaluation: détection utilisateur humain
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If drapeau = 1 Then
' Message d'accueil dès reconnaissance utilisateur
' Initialisation des statuts de la fiche (en orange)
Sheets("Fiche").Range("A1").Value = "Statut Fiche: -----> A Remplir"
Sheets("Fiche").Range("A2").Value = "Statut Dossier: ---> A Remplir"
Sheets("Fiche").Range("A3").Value = "Etat Victime: -----> A Remplir"
' Initialisation des renseignements bénéficiaires
Sheets("Fiche").Range("A79").Value = "Bénéficiaire OS: -----> A Remplir"
Sheets("Fiche").Range("A95").Value = "Bénéficiaire OS: -----> A Remplir"
Sheets("Fiche").Range("A128").Value = "Bénéficiaire: -----> A Remplir"
Sheets("Fiche").Range("A138").Value = "Bénéficiaire: -----> A Remplir"
' Actualisation de la variable d'état: drapeau
drapeau = 2
'Message optionnel de reconnaissance de l'utilisateur
'MsgBox "Bonjour " & Environ("UserName") & " Merci d'effectuer la saisie selon le process établi: cf document [lien hypertexte]"
Exit Sub
End If
End Sub |
Partager