PMG
XLDnaute Junior
Bonjour le forum,
J'espère que vous allez bien malgré cette période de confinement un peu particulière!
Je me permets de solliciter vos connaissance concernant un problème de protection / déprotection avec un shape ou une image.
Toutes les feuilles du classeur sont à protéger / déprotéger via un shape qui ce trouve uniquement sur les sur les trois premières feuilles, car les autres sont des bases de données.
1er clic = déprotéger classeur + zonetexte = protection
2ème clic = protéger classeur + zonetexte = déprotection
etc...
J'ai essayé de plusieurs manière et je retombe à chaque fois sur le même problème, après plusieurs cycles de clics je ne reste jamais sur la feuille active.
Merci de votre temps et de vos lumières!
PMG
J'espère que vous allez bien malgré cette période de confinement un peu particulière!
Je me permets de solliciter vos connaissance concernant un problème de protection / déprotection avec un shape ou une image.
Toutes les feuilles du classeur sont à protéger / déprotéger via un shape qui ce trouve uniquement sur les sur les trois premières feuilles, car les autres sont des bases de données.
1er clic = déprotéger classeur + zonetexte = protection
2ème clic = protéger classeur + zonetexte = déprotection
etc...
J'ai essayé de plusieurs manière et je retombe à chaque fois sur le même problème, après plusieurs cycles de clics je ne reste jamais sur la feuille active.
Merci de votre temps et de vos lumières!
PMG
Option Explicit
Sub Protège()
Dim Ws As Worksheet
Application.ScreenUpdating = False
If ActiveSheet.Shapes.Range(Array("ZoneTexte 2")).TextFrame2.TextRange = "protection" Then
For Each Ws In Sheets
Ws.Protect Password:="", userinterfaceonly:=True
Next Ws
For Each Ws In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
Ws.Shapes.Range(Array("ZoneTexte 2")).TextFrame2.TextRange = "déprotection"
Next Ws
Else
If ActiveSheet.Shapes.Range(Array("ZoneTexte 2")).TextFrame2.TextRange = "déprotection" Then
For Each Ws In Sheets
Ws.Unprotect Password:=""
Next Ws
For Each Ws In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
Ws.Shapes.Range(Array("ZoneTexte 2")).TextFrame2.TextRange = "protection"
Next Ws
End If
End If
ActiveSheet.Select
Application.ScreenUpdating = True
End Sub