Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
Merci d avance
 

Mimi

XLDnaute Occasionnel
Re : VBA - UserInterfaceOnly sur classeur partagé

Bonjour,
A ma connaissance, quand tu as des macros dans le VBA il est impossible de partagé le classeur, si tu le partages, les macros ne fonctionnent pas.
Michel
 

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
362
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…