Hello,

Un classeur contient une macro et des données. Plusieurs utilisateurs peuvent appeler cette macro simultanément. Le classeur doit donc être en mode "partagé". Cependant, l'exécution de la macro met à jour des données contenu dans ledit classeur. Pour bloquer la modification du classeur par les utilisateurs mais pas par la macro, je protège le classeur avec la clause "userinterfaceonly" de la méthode "protect", à chaque ouverture du classeur. Le problème est que cette façon de protéger mon classeur est incompatible avec le mode "partagé".

Auriez-vous une autre prise ?

Merci !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
'########### VEROUILLE L'ACCES AUX DONNEES ###############
Private Sub Workbook_Open()
    'Procédure executée à chaque ouverture du classeur (i.e à chaque execution de la macro)
 
    'On protège les feuilles de données, avec l'option userinferfaceonly pour ne restreindre
    'l'accès qu'à l'utilisateur, mais pas à la macro
    ThisWorkbook.Sheets("ParametresGeneraux").Protect password:="blablabla", userinterfaceonly:=True
    ThisWorkbook.Sheets("ParametresCpty").Protect password:="pstrow56", userinterfaceonly:=True, _
    AllowSorting:=True, AllowDeletingRows:=True
 
End Sub