Contourner le mode partagé pour modifier des segments de TCD

Bonjour à tous.

Même si mon titre est explicite, voici une explication de mon problème.

j'ai un fichier (blindé de macro) qui est en mode partagé.

Au sein de ce même fichier , j'ai un onglet comprenant un Tableau Croisé Dynamique et quelques graphiques qui s'y réfèrent.

Est-il possible , à l'aide d'un complément ou d'un userform, de modifier les slicers (segments) de ce TCD en mode partagé ?

Merci d'avance pour vos réponses.

Bonjour Paul, Bonjour le Fofo,

Au début de ta procédure, tu peux désactiver le mode partagé de ton classeur avec le code ci-dessous :

Sub Partage_Off()
' Désactivation du partage pour permettre le lancement des macros
    Application.DisplayAlerts = False ' Pas de message d'erreur
    ActiveWorkbook.ExclusiveAccess ' Accès exclusif activé !
End Sub

Lancer ta procédure pour "modifier tes segments de TCD"

Et enfin réactiver le mode partagé de ton classeur :

Sub Partage_On()
    'Active le partage du classeur
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, accessMode:=xlShared
    Application.DisplayAlerts = True
End Sub

Bonjour Juice,

Merci de ta réponse.

J'utilise déjà ce système pour mettre à jour le TCD lors d'une macro de mise à jour.

Le problème qui se pose est que cette modification de segment doit être envisageable lors de l'utilisation du fichier.

Expliquer différemment , une personne qui est sur le fichier doit pouvoir modifier ces segments sans avoir à exécuter une macro au préalable.(Ces segments sont des filtres qui mettent à jour des graphiques)

j'espère être assez claire dans mes explications.

Merci d'avance.

Bonjour,

Un lien à consulter :

https://support.office.com/fr-fr/article/En-savoir-plus-sur-la-fonctionnalité-Classeur-partagé-49b833c0-873b-48d8-8bf2-c1c59a628534

Voir plus particulièrement le point qui traite des fonctionnalités non prises en charge !...

Cdlt.

Je suis vraiment très très nul en TCD, et je ne sais même pas ce qu'est une "modification des segments de TCD"

Mais imaginons le code suivant :

Private Sub Worksheet_change(byval target as range)
'Si les segments sont en train d'être changer alors 
Call Partage_Off
' Sinon
Call Partage_On
End Sub

Cela devrait permettre une modification sans avoir de message d'erreur dû au partage du classeur ?

Jean-Eric,

Je me doutait de tomber en face d'une personne comme vous. Le fait qu'Excel stipule que cette fonctionnalité n'est pas disponible en mode partagé, j’espérai trouver une solution alternative afin de contourner cette impossibilité.

Merci à Juice qui m'a mit la puce à l'oreille.

En effet, afin de contourner ce blocage d'Excel, j'ai procédé de la façon suivante :

  • Lorsque la page est sélectionné, le mode partagé se désactive.
  • Lorsque l'utilisateur quitte l'onglet contenant les TCD, le mode partagé se ré-active.

Juice, merci à toi.

Peut-être faut-il apprendre à réfléchir autrement que de respecter à la lettre les procédures prédéfinis d'Excel.

Private Sub Worksheet_Activate()
Application.DisplayAlerts = False
ActiveWorkbook.ExclusiveAccess
Application.DisplayAlerts = True
End Sub

Private Sub Worksheet_Deactivate()
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FileName:=ActiveWorkbook.FullName, _
accessMode:=xlShared
ActiveWorkbook.KeepChangeHistory = True
Application.DisplayAlerts = True
End Sub
Rechercher des sujets similaires à "contourner mode partage modifier segments tcd"