Although this sorta defeats the security purpose a little, it'll do what you want.
You'll need a userform that simulates the appearance of an inputbox (example attached). Change the sheet names and their passwords in the example to suit...
In the Userform Code Module:
Option Explicit
Private Sub UserForm_Activate()
TextBox1.PasswordChar = "*"
End Sub
Private Sub TextBox1_Change()
'
Select Case ActiveSheet.Name
Case "Sheet1"
If TextBox1 = "1234" Then GoSub UnlockSht
Case "Sheet2"
If TextBox1 = "2345" Then GoSub UnlockSht
Case "Sheet3"
If TextBox1 = "3456" Then GoSub UnlockSht
End Select
Exit Sub
UnlockSht:
ActiveSheet.Columns("A:AM").Hidden = False
Unload Me
End Sub
Private Sub CancelButton_Click()
Unload Me
End Sub
In the worksheet code modules:
Option Explicit
Private Sub Worksheet_Activate()
On Error Resume Next
With Me
.Columns("A:AM").Hidden = True
.Protect Password:="1234", _
DrawingObjects:=True, _
contents:=True, _
Scenarios:=True, _
userinterfaceonly:=True
End With
UserForm1.Show False
End Sub
Private Sub Worksheet_Deactivate()
Unload UserForm1
End Sub