[VBA] protection feuille Excel

Bonjour le forum

j'ai besoin de vous pour comprendre le fonctionnement de la boite de dialogue qui est utilisée pour la protection d'une feuille. Pour me simplifier la vie et éviter de coder je souhaite passer directement par la boite de dialogue xlDialogProtectDocument. Ce que je cherche à faire est d'appliquer les paramètres n'on pas à la feuille active mais à une feuille spécifique.

Voir l'exemple d'un code hypothétique ci-dessous :

Sub Macro1()
Dim Ws As Worksheet
Dim Dl As Dialog

    Set Ws = ThisWorkbook.Worksheets("BD")
    With Application.Dialogs(xlDialogProtectDocument).Show
        If Ws.ProtectContents = True Then
            Ws.Unprotect .Password
        Else
            Ws.Protect .Password 'et appliquer tous les paramètres définis par l'utilisateur dans la boite de dialogue sur la feuille
        End If
    End With
End Sub

Sauriez-vous comment faire ? Car d'après l'aide Microsoft (https://docs.microsoft.com/fr-fr/office/vba/excel/Concepts/Controls-DialogBoxes-Forms/built-in-dialo...) la liste des arguments disponibles sont les suivants : contents, windows, password, objects, scenarios

Par avance, merci de l'interet porté au sujet

bonjour,

Tu ne peux pas utiliser cette boite de dialogue pour autre chose que la feuille active.

Pour protéger une autre feuille utiliser :

Worksheets("blabla").Protect 'ou
Worksheets(2).Protect
'...

...Avec les paramètres suivants :

Sub Macro1()
   Worksheets(1).Protect _
   Password:="bidon", _
   DrawingObjects:=False, _
   Contents:=True, _
    Scenarios:=False, _
   AllowFormattingCells:=True, _
   AllowFormattingColumns:=True, _
   AllowFormattingRows:=True, _
   AllowInsertingColumns:=True, _
   AllowInsertingRows:=True, _
   AllowInsertingHyperlinks:=True, _
   AllowDeletingColumns:=True, _
   AllowDeletingRows:=True, _
   AllowSorting:=True, _
    AllowFiltering:=True, _
   AllowUsingPivotTables:=True 'ou False (tous facutatifs)
End Sub

A+

Merci galopin01, c'est une réponse claire, nette et précise comme je les aimes

Voir aussi ma modif ci-dessus...

A+

yes, merci, j'avais déjà récupéré tout ces paramètres via l'enregistreur de macro (mais j'ai été pris d'une flemmingite aigue en voyant ça )

A toutes les personnes qui passent par ici, car ayant eu la même idée que moi, je vous invites à allez voir le poste ci-dessous : https://forum.excel-pratique.com/astuces/protection-des-feuilles-boite-de-dialogue-158024

Rechercher des sujets similaires à "vba protection feuille"