VBA - UserInterfaceOnly sur classeur partagé

helpvb

XLDnaute Nouveau
Bonjour and help help help

J'ai un classeur Excel avec des macros VBA 6.3
Ce classeur est utilisé en mode partagé

J aurais besoin de le proteger en mode UserInterfaceOnly = True mais le pb c est que je perd ce mode de protection des qu un utilsateur sort du document Excel.
Pour le remettre (en codant le call back Open) je dois auparavant enlever le partage ce qui veut dire faire sortir tous les utilisateurs afin qu un nouvel utilisateur puisse rentrer ! ce qui n est evidemment pas possible
Que faire Please help :eek:
Merci d avance
 

kiki29

XLDnaute Barbatruc
Re : VBA - UserInterfaceOnly sur classeur partagé

Jour Bon
Pêché sur un forum voisin

Il n'est pas possible de protéger une feuille dont le classeur est déjà partagé. La solution suivante enlève le partage provisoirement, le temps de protéger la feuille mais cela signifie que vous perdez tous les autres avantages du partage:

Les modifications en cours qui n'ont pas été enregistrées par les autres utilisateurs seront perdues.
L'historique des modifications sera effacé. Vous devrez donc créer préalablement une sauvegarde de l'historique.

Code:
Private Sub Workbook_Open()
    'testé sous Excel2007
    Dim Fichier As String
    
    Fichier = ThisWorkbook.FullName
    Application.DisplayAlerts = False
 
    'Protège la feuille "Feuil3" et autorise les modifications uniquement par macro (UserInterfaceOnly:=True)
    With ActiveWorkbook
        .ExclusiveAccess
        .UnprotectSharing '"Password"
        .Worksheets("Feuil3").Protect Contents:=True, UserInterfaceOnly:=True
        .ProtectSharing Filename:=Fichier ', Password:="Password"
    End With
    
    Application.DisplayAlerts = True
End Sub
 

Discussions similaires

Réponses
1
Affichages
353
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 198
Messages
2 086 146
Membres
103 130
dernier inscrit
FRCRUNGR