TCDs sur feuilles protégées

Bonjour le forum!

Je m'étrangle avec ce sujet ...

J'ai une base de données sur la feuille 1

J'ai ensuite plusieurs TCDs sur plusieurs feuilles provenant de la même source (sur la feuille 1). Toutes ces feuilles sont protégées. Je ne veux pas que l'utilisateur puissent effacer malencontreusement les TCDs ni jouer avec, juste les consulter.

Je souhaite que le clic sur un onglet de feuille actualise les TCDs de cette feuille.

ThisWorkBook.RefreshAll fonctionne très bien si aucune feuille n'est protégée mais PAS si une des feuilles est protégée.

Comment faire en sorte que les TCDs d'une feuille s'actualisent quand je clique sur l'onglet de cette feuille.

Merci !!!

Bonsoir à tous,

A insérer dans ta macro.

ActiveSheet.Unprotect

Ta macro

ActiveSheet.Protect

Cordialement.

Merci Zébulon mais la deprotection et protection n agisse que sur la feuille concernée et les TCD refusent de se mettre a jour car les autres feuilles restent protégées et comme tous les TCD proviennent de la même source ... la mise a jour est impossible.

Bonjour

Faire une boucle qui déprotègent toutes les feuilles, actualise et reprotège...

C'est exactement ce que je cherche à faire et que je n'arrive pas ...

Mon niveau en VBA est vraiment débutant.

Si tu pouvais me donner le code ... ce serait vraiment apprécié.

Je pourrais ensuite travailler et apprendre à partir de ça.

Donc

Feuille 1 : tableau source

Feuille 2 : 3 TCD (feuille protégée)

Feuille 3 : 3 TCD (feuille protégée)

Feuille 4: 2TCD (feuille protégée)

Feuille 5 : 4 TCD (feuille protégée)

Feuille 6 : 1 TCD (feuille protégée)

Feuille 7 : 2 TCD (feuille protégée)

Tous les TCD proviennent du tableau source de la feuille 1

Quand je clique sur un onglet, il faut déprotéger toutes les feuilles, mettre tous les TCD à jour et reprotéger toutes les feuilles.

Merci mille fois !

re,

Peut être

Feuil1.Unprotect

Feuil2.Unprotect

Feuil3.Unprotect

Feuil4.Unprotect

Feuil5.Unprotect

Feuil6.Unprotect

Feuil7.Unprotect

ta macro

Feuil1.Protect

Feuil2.Protect

Feuil3.Protect

Feuil4.Protect

Feuil5.Protect

Feuil6.Protect

Feuil7.Protect

Cordialement.

Pour tous ceux et celles qui cherchent encore, ce code n'est peut être pas le plus ergonomique mais il fonctionne :

Remplacer "tableau source" par le nom de la feuille ou se trouve votre tableau ou source de données

Remplacer FEUIL1, 2 et 3 par le nom des feuilles ou se trouvent vos TCDs

MISE A JOUR TCDs SUR PLUSIEURS FEUILLES PROTEGEES

1 code dans ThisWorkbook

1 code dans un module

‘ThisWorkbook

Option Explicit

Private Sub Workbook_Open()

RefreshPivotTables

End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

If Sh.Name = "TABLEAU_SOURCE" Then RefreshPivotTables

End Sub

Module

Option Explicit

Public Sub RefreshPivotTables()

Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets

Select Case ws.Name

Case "FEUIL1", "FEUIL2", "FEUIL3":

ws.Unprotect

Case Else:

End Select

Next ws

ActiveWorkbook.Worksheets("TABLEAU_SOURCE").PivotTables(1).RefreshTable

For Each ws In ActiveWorkbook.Worksheets

Select Case ws.Name

Case "FEUIL1", "FEUIL2", "FEUIL3":

ws.Protect

Case Else:

End Select

Next ws

End Sub

RE

Case else est inutile.

Sinon c'est OK

Rechercher des sujets similaires à "tcds feuilles protegees"