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