Const mdp$ = "chris" 'mot de passe à adapter
Private Sub UserForm_Initialize()
ListBox1.List = [Tableau1].Value 'à adapter
End Sub
Private Sub CommandButton1_Click() 'Ajouter
Dim s As Object, nom As Variant, ref As Variant
With [Tableau1] 'à adapter
.Parent.Protect mdp, UserInterfaceOnly:=True
.Parent.Parent.Unprotect mdp
Application.ScreenUpdating = False
Set s = Sheets.Add(After:=Sheets(1)) 'ajout d'une feuille
.Parent.Select
Application.ScreenUpdating = True
nom = s.Name
.Rows(2).Insert xlDown
.Cells(2, 1) = nom
ListBox1.List = .Value 'mise à jour
On Error Resume Next 'si le nom ne convient pas
Do
nom = Application.InputBox("Nom de la feuille :", "Ajouter une feuille", CStr(nom))
If nom = False Then Application.DisplayAlerts = False: s.Delete: ListBox1.RemoveItem 1: .Rows(2).Delete xlUp: GoTo 1
s.Name = CStr(nom)
Loop While s.Name <> CStr(nom)
ListBox1.List(1) = nom 'modifie la liste
.Cells(2, 1) = nom
Do
ref = Application.InputBox("Référence :", "Ajouter une feuille")
If ref = False Then GoTo 1
Loop While ref = ""
ListBox1.List(1, 1) = ref 'modifie la liste
.Cells(2, 2) = ref
.EntireColumn.AutoFit 'ajustement largeur
1 .Parent.Parent.Protect mdp, True
End With
End Sub
Private Sub CommandButton2_Click() 'Supprimer
Dim i&
With ListBox1
i = .ListIndex
If i = -1 Then Exit Sub
If i = 0 Then MsgBox "Suppression non autorisée...", 16, "Supprimer une feuille": Exit Sub
If MsgBox("Supprimer '" & .Value & "' ?", 36, "Supprimer une feuille") = 7 Then Exit Sub
.RemoveItem i
End With
With [Tableau1] 'à adapter
.Parent.Protect mdp, UserInterfaceOnly:=True
.Parent.Parent.Unprotect mdp
Application.DisplayAlerts = False
Sheets(CStr(.Cells(i + 1, 1))).Delete 'supprime la feuille sélectionnée
.Rows(i + 1).Delete xlUp
.EntireColumn.AutoFit 'ajustement largeur
.Parent.Parent.Protect mdp, True
.Parent.Select
End With
End Sub
Private Sub ListBox1_Click()
Sheets(ListBox1.Value).Activate
End Sub