Y
yannick
Guest
Bonjour,
Je cherche à obliger les utilisateurs à activer les macros au démarrage d'excel afin d'empecher de faire des copier-coller. Voici mon code :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
'On cache toutes les feuilles sauf la première pour le prochain lancement
Sheets(5).Visible = True
For i = Sheets.Count - 1 To 1 Step -1
Sheets(i).Visible = xlVeryHidden
Next i
ActiveWorkbook.Save
End Sub
Private Sub Workbook_Open()
Application.ScreenUpdating = False
' On rend visible toutes les feuilles
For Each Sh In Sheets
Sh.Visible = True
Next Sh
' On cache la feuille d'accueil pour activer les macros
Sheets(5).Visible = xlVeryHidden
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Application.CutCopyMode = False
End Sub
l'enorme problème avec ce code, c'est que je force l'enregistrement lors de la fermeture, un utilisateur ayant fait des modifs et s'apercevant qu'il s'est trompé ne peut pas sortir du document sans sauvegarder !!
Si j'annule la sauvegarde automatique, il suffit qu'apres l'ouverture du document, l'utilisateur sauvegarde, puis ferme le document, ce qui a pour effet de redemander de sauvegarder, et la s'il ne sauvegarde pas, il n'aura plus besoin d'activer les macros pour acceder aux feuilles, et donc il pourra faire ce que je ne veux pas : du copier-coller.
Bref, je tourne en rond. Quelqu'un pourrait-il me venir en aide ?
merci d'avance.
Yannick
Je cherche à obliger les utilisateurs à activer les macros au démarrage d'excel afin d'empecher de faire des copier-coller. Voici mon code :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
'On cache toutes les feuilles sauf la première pour le prochain lancement
Sheets(5).Visible = True
For i = Sheets.Count - 1 To 1 Step -1
Sheets(i).Visible = xlVeryHidden
Next i
ActiveWorkbook.Save
End Sub
Private Sub Workbook_Open()
Application.ScreenUpdating = False
' On rend visible toutes les feuilles
For Each Sh In Sheets
Sh.Visible = True
Next Sh
' On cache la feuille d'accueil pour activer les macros
Sheets(5).Visible = xlVeryHidden
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Application.CutCopyMode = False
End Sub
l'enorme problème avec ce code, c'est que je force l'enregistrement lors de la fermeture, un utilisateur ayant fait des modifs et s'apercevant qu'il s'est trompé ne peut pas sortir du document sans sauvegarder !!
Si j'annule la sauvegarde automatique, il suffit qu'apres l'ouverture du document, l'utilisateur sauvegarde, puis ferme le document, ce qui a pour effet de redemander de sauvegarder, et la s'il ne sauvegarde pas, il n'aura plus besoin d'activer les macros pour acceder aux feuilles, et donc il pourra faire ce que je ne veux pas : du copier-coller.
Bref, je tourne en rond. Quelqu'un pourrait-il me venir en aide ?
merci d'avance.
Yannick