Salut a tous
Afin de protéger un fichier sensible de ma boite j'ai du créer une macro de sécurité.
Problème se fichier est utilisé par tous, le but est qu'il ne soit pas possible de l'utiliser en dehors de la boite sans le perdre ( ou sans connexion au serveur de la boite, le fichier ayant déjà été voler par un stagiaire )
Donc j'ai créer une macro sur se classeur qui vérifie l’accès en testant la présence d'un ficher caché sur le disque dur même des ordinateurs de la boite ou sur le serveur commun afin de pouvoir travailler chez soi tout en étant connecté.
Si le fichier n'est pas trouvé la macro supprime tous les onglets, enregistre et ferme automatiquement le classeur.
Et c'est la que la bas blesse, le fichier qui est sur le disque commun et donc susceptible d’être voler est en lecture seule ( afin de ne pas sauvegarder les éventuelles fausses manip ), donc en cas de vol la macro s’exécute mais ne peux pas enregistrer les suppression d'onglets.
Voici la macro ne pouvant joindre mon fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Private Sub Workbook_Open() Application.ScreenUpdating = False 'test fichier caché pour le C 'Sub Test() If FichierExiste("chemin fichier sur le C") = True Then Application.ScreenUpdating = True ElseIf DossierExiste("chemin fichier sur le p") = True Then 'test Dossier caché pour le P Application.ScreenUpdating = True Else Sheets.Add.Move after:=Sheets(Sheets.Count) While Sheets.Count > 1 Application.DisplayAlerts = False Sheets(1).Delete 'Efface la dernière feuille Application.AlertBeforeOverwriting = False ActiveWorkbook.Save Wend 'ferme le classeur Workbooks("Macro sécu").Close False End If End Sub Function FichierExiste(NomFichier As String) As Boolean FichierExiste = Dir(NomFichier, vbDirectory + vbHidden) <> "" End Function Function DossierExiste(NomDossier As String) As Boolean On Error GoTo traiterr DossierExiste = Dir(NomDossier, vbDirectory + vbHidden) <> "" Exit Function traiterr: Resume Next End Function Sub testrrrr() MsgBox DossierExiste("chemin fichier sur le p") End Sub
Partager