XL 2019 Comment empêcher l'ouverture d'un fichier Excel, si les macros ne sont pas activés sur le pc

abi_71@

XLDnaute Junior
Bonjour à tous,

J'ai un fichier dont à l'ouverture il a deux étapes de login (le code VBA ci-dessous dans "Thisworkbook") et en testant mon fichier sur un autre PC (les macros été désactivé sous Excel "heureusement") en ouvrant mon fichier j'ai eu accès directement à mon classeur et mes feuilles sans passer par login et mot de passe, le défit est de comment interdire l'ouverture d'un fichier Excel si les macros ne sont pas activés sur le pc utilisé.

Option Explicit

Private Sub Workbook_Open()
Feuil13.Activate
Range("P9").Activate
[_utilisateur] = "Invité"
Connecter
Alimenter_Combo
Application.DisplayFullScreen = True
Dim Y, s
ActiveSheet.Protect UserInterfaceOnly:=True
On Error Resume Next
Y = Application.CommandBars.Item("Ribbon").Visible
s = IIf(Y, "False", "True")
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon""," & s & ")"

End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim cellule As Range
For Each cellule In [_rubriques]
If cellule = Sh.Name Then

If Not cellule.Offset(0, 1) = True Then

Feuil13.Activate
MsgBox "L'accès interdit"
End If

End If
Next
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

ThisWorkbook.Save
End Sub


Je vous remercie d'avance,

Cordialement,
 
Solution
Bonjour,

Masque les feuilles que tu veux rendre invisibles, puis onglet Révision -> Protéger le classeur.
A l'ouverture, l'utilisateur ne verra que ce que tu lui montres, et ne pourra pas ouvrir les feuilles masquées.

Bonne journée,

xUpsilon

XLDnaute Accro
Bonjour,

Masque les feuilles que tu veux rendre invisibles, puis onglet Révision -> Protéger le classeur.
A l'ouverture, l'utilisateur ne verra que ce que tu lui montres, et ne pourra pas ouvrir les feuilles masquées.

Bonne journée,
 

Deadpool_CC

XLDnaute Accro
Bonjour ...
t'as pas cherché sur le forum ?
ex :

 
Dernière édition:

abi_71@

XLDnaute Junior
Bonjour,

Masque les feuilles que tu veux rendre invisibles, puis onglet Révision -> Protéger le classeur.
A l'ouverture, l'utilisateur ne verra que ce que tu lui montres, et ne pourra pas ouvrir les feuilles masquées.

Bonne journée,
Bonjour,

Ici l'idée n'est pas de masqué des feuilles mais plutôt de forcer le classeur à ne pas s'ouvrir si les macros sont désactivé car j'ai un double connexion.

Merci
 

Deadpool_CC

XLDnaute Accro
Re...

L'activation de macro se fait par fichier par fichier (test de Micorosft sur le fichier en cours d'ouverture + si pas les bons "tag" ... alors Excel bloque les macro et demande à l'utilisateur de les activer pour ce fichier ...)

Donc Excel doit Ouvrir le Fichier pour tester sa sécurité et bloquer ou non les macros et initier la possibilité à l'utilisateur d'activer les macros.

Et pas moyen de court-circuiter l'ouverture et la vérification de sécurité de Microsoft ... donc à part ces solutions, peu de chance que tu trouves un moyen avec une interdiction d'ouverture.

Cela me parait infaisable mais peut-être que quelqu'un à un truc Magique dans sa manche ... lol
 

abi_71@

XLDnaute Junior
Bonjour ...
t'as pas cherché sur le forum ?
ex :

Merci à vous tous j'ai trouvé une solution ici (https://excel-downloads.com/threads/vba-excel-controle-de-lactivation-des-macros.127474/post-746429) et pu l'adapté :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Sheets("FeuilleActivationDesMacros").Visible = xlSheetVisible
Dim curSheet As Worksheet
For Each curSheet In ThisWorkbook.Sheets
If curSheet.Name <> "FeuilleActivationDesMacros" Then curSheet.Visible = xlSheetVeryHidden
Next curSheet
ThisWorkbook.Save
End Sub

Merci
 

Discussions similaires

Statistiques des forums

Discussions
315 090
Messages
2 116 104
Membres
112 661
dernier inscrit
ceucri