SOLVED

Column hide & to unhide column password is required

Brass Contributor

Tech Community,

 

I need one help, I have a main template from which I'm going generate one customer copy.

while generating customer copy I need to hide column B:G of each sheet in customer copy, as these columns are hidden in customer copy and if I need to unhide them then it should request a password without which it should not unhide. Can someone help me out in this.

attached sample template as detailed one not able to share.

 

@Hans Vogelaar can you please help me?

8 Replies

@Sumit_Bhokare 

If you want to require a password to unhide columns, you will have to do the following:

  • Select all cells that the user should be able to edit.
  • Press Ctrl+1 to activate the Format Cells dialog.
  • Activate the Protection tab.
  • Clear the locked check box.
  • Click OK.
  • On the Review tab of the ribbon, click Protect Sheet.
  • Use the check boxes to specify what the user will be allowed to do.
  • Leave the check box 'Select unprotected cells' ticked.
  • Do not tick the check box 'Format Columns'.
  • Specify a password.
  • Click OK.
  • Enter the password again.
  • Click OK.
  • Save the workbook.

Would that be OK?

@Sumit_Bhokare 

As a comment, all information into the hidden columns of the protected sheet could be available to users without password. For example, it's enough in any unprotected cell to enter =B1 and drag to the right and down.

@Hans Vogelaar  Requirement is that column should get hide while creating a customer copy from main template.
Main template already have vba code that is developed to meet other functionality requirements hide columns is new additional requirement.

@Sergei Baklan Columns which I want to hide will not have any data. first we are clearing those columns and then we want to hide those columns as deletion of columns is not allowed.
best response confirmed by Sumit_Bhokare (Brass Contributor)
Solution

@Sumit_Bhokare 

Sub CreateCopy()
    Dim wsh As Worksheet
    Dim fil
    For Each wsh In Worksheets
        wsh.Range("B1:G1").EntireColumn.Hidden = True
    Next wsh
    fil = Application.GetSaveAsFilename( _
        InitialFileName:="New Workbook", _
        FileFilter:="Excel Macro-enabled Workbook (*.xlsm),*.xlsm", _
        Title:="Create copy of workbook")
    If fil = False Then
        Beep
    Else
        ActiveWorkbook.SaveCopyAs fil
    End If
    For Each wsh In Worksheets
        wsh.Range("B1:G1").EntireColumn.Hidden = False
    Next wsh
End Sub
@Hans Vogelaar Can we add fixed password which will unhide columns?
1 best response

Accepted Solutions
best response confirmed by Sumit_Bhokare (Brass Contributor)
Solution

@Sumit_Bhokare 

Sub CreateCopy()
    Dim wsh As Worksheet
    Dim fil
    For Each wsh In Worksheets
        wsh.Range("B1:G1").EntireColumn.Hidden = True
    Next wsh
    fil = Application.GetSaveAsFilename( _
        InitialFileName:="New Workbook", _
        FileFilter:="Excel Macro-enabled Workbook (*.xlsm),*.xlsm", _
        Title:="Create copy of workbook")
    If fil = False Then
        Beep
    Else
        ActiveWorkbook.SaveCopyAs fil
    End If
    For Each wsh In Worksheets
        wsh.Range("B1:G1").EntireColumn.Hidden = False
    Next wsh
End Sub

View solution in original post