Protection d'une feuille en VBA
J
Bonsoir tout le monde,
J'ai voulus verrouiller une feuille avec des segments de filtration. mais, je me suis rendu compte que je ne pouvais pas les utiliser avec une feuille verrouillée.
je peux la protéger en manuel, en cliquant sur "modifier les objets" et "utiliser le filtre automatique".
Mais, je parviens pas à l'écrire en VBA, Les essais effectuées ne fonctionne pas, code ci-dessous.
Pouvez-vous m'aider s'il vous plait ?
Private Sub CommandButton1_Click()
Dim dl As Integer
With Sheets("BDMasques")
.Unprotect Password:=*****
If Me.Cbx_Nom <> "" And Me.Cbx_Types <> "" And Me.Txt_date <> "" And Me.Txt_quantité <> "" Then
Sheets("BDMasques").ListObjects(1).ListRows.Add
dl = Sheets("BDMasques").Range("b9999").End(xlUp).Row
Sheets("BDMasques").Range("B" & dl) = Me.Cbx_Nom
Sheets("BDMasques").Range("C" & dl) = Me.Cbx_Types
Sheets("BDMasques").Range("D" & dl) = CInt(Me.Txt_quantité)
Sheets("BDMasques").Range("E" & dl) = Me.Txt_date
ThisWorkbook.Save
Unload Ajouts_Masques
End If
.Protect Password:=*****, _
AllowSorting:=True, _
AllowFiltering:=True
End With
End SubBonjour,
A tester !
Option Explicit
Const PWD As String = "xxx"
Private Sub CommandButton1_Click()
Dim wb As Workbook, ws As Worksheet, lo As ListObject, r As Range
Set ws = Worksheets("BDMasques")
Set lo = ws.ListObjects(1)
With lo
If .InsertRowRange Is Nothing Then
Set r = .HeaderRowRange.Cells(1).Offset(.ListRows.Count + 1)
Else
Set r = .InsertRowRange.Cells(1)
End If
End With
If Me.Cbx_Nom <> "" And Me.Cbx_Types <> "" And Me.Txt_date <> "" And Me.Txt_quantité <> "" Then
With ws
.Unprotect Password:=PWD
With r
.Value = Me.Cbx_Nom
.Offset(, 1).Value = Me.Cbx_Types
.Offset(, 2).Value = CInt(Me.Txt_quantité)
.Offset(, 3).Value = Me.Txt_date
End With
.EnableSelection = xlUnlockedCells
.EnableAutoFilter = True
.Protect Password:=PWD, _
DrawingObjects:=False, _
Contents:=True, _
Scenarios:=True, _
userinterfaceonly:=True, _
AllowSorting:=True, _
AllowFiltering:=True
End With
Unload Ajouts_Masques
ThisWorkbook.Save
End If
End SubJ
Merci beaucoup !!!
Passer de bonne fête !!