It may depend on how complicated you want the choices.
Code:
Sub ProtectAndAllowGrouping()
Dim strPassword As String
strPassword = "mypassword"
ActiveSheet.EnableOutlining = True
ActiveSheet.Protect Password:=strPassword, userinterfaceonly:=True
End Sub
This protects the active sheet with password "mypassword" but still allows user to expand and contract groups. Problem: settings are not saved once you close and re-open the workbook.
Possible solution: call the macro automatically each time the workbook opens [code goes in Workbook code module]:
Code:
Private Sub Workbook_Open()
ProtectAndAllowGrouping
End Sub
(To open the workbook code module double-click the ThisWorkbook icon in the VBE Project Explorer. Or, right-click the workbook's icon in Excel and choose View Code.)