Skip to main content

How to lock cells in Excel using VBA


There’s a lot of ways in Excel to lock cells using VBA or even without VBA.

But would it be nice to lock a cell that would give the user a warning.

Something like, test the Excel user whether they are able to follow a simple instruction.

Like, please don’t change the value of the next cell.

I’m sure the user will be pretty curious, and will change it.

So the VBA will monitor if the cell has been change, and prompt the user that the cell has been changed.

And of course put back the original value. And display a message to intimidate the user like, “You’ve been warn not to changed. It’s useless, reverting back to original value”.

But of course to lock a cell it would be better to do it using the proper way, but for funny moments this piece of code would be fun.

The call is yours, if you want to implement this code on the production. It works well, anyway.
.
Try this on a grumpy user and just watch the reaction, whether he/she will smack the computer.

Here’s the code, I won’t give a detail instruction on how to put this piece of code to Excel VBA.

But I’m sure you will figure it out, if you want to have some fun.

On Range A1, put a text “Please don’t change my favorite NBA Team”.

Then on Range “B1”, type “LA Lakers Simply the best”. (don’t include the quotes)

Put the code on Worksheet_Change event or else it will not work as expected.

The VBA code that will do the job:

=================================================

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Me.Range("B1")) Is Nothing Then Exit Sub

    Application.EnableEvents = False

    MsgBox "You changed it, You cannot instruction a simple follow!"

 If Range("B1") <> "LA Lakers Simply the best" Then

    Cells(1, 2).Value = "LA Lakers Simply the best"

    MsgBox "I will put back my Favorite NBA Team ""LA Lakers"", Through the years!!!"

     End If

    Application.EnableEvents = True              

                    
End Sub

=================================================


That’s it guys, chill out a bit! It’s good to have fun!!!



Cheers!!
                                                                                                                              


Comments

Popular posts from this blog

Copy a single file using robocopy

Copy a single file using robocopy from a local folder to a shared folder on the network.
A simple rule of thumb before any disaster strike, don't interchange the source and the destination.

If source and destination is mistakenly reverse, files might get overwritten. To avoid any loss of data do a test with a dummy file to ensure things work perfectly.
Robocopy [source][destination]   [file to be copied]
robocopy c:\local_c_folder  \\PC_network\shared_folder   file_to_be_copied_xx.txt
The command will be completed successfully provided the network access right has no issues.

Robocopy works quite good on large files. A simple copy or xcopy command will also work but the speed might vary.

Robocopy is free it can be accessed from command line. No need to install the resource kit tool if the operating system is Windows 7 or newer version.

Copy files with selected file extension using PowerShell and Robocopy:

$extension = ('.pdf', '.jpg', '.txt')
gci d:\WorkFolde…

WMIC get computer name

WMIC get computer model, manufacturer, computer name and  username.
WMIC is a command-line tool and that can generate information about computer model, its manufacturer, its username and other informations depending on the parameters provided.
Why would you need a command line tool if there’s a GUI to check?
If you have 20 or 100 computers, or even more. It’s quite a big task just checking the GUI to check the computer model and username.
If you have remote computers, you need to delegate someone in the remote office or location to check.
Or you can just write a batch file or script to automate the task.
Here’s the code below on how get computer model, manufacturer and the username.
Open an elevated command prompt and type:
wmic computersystem get "Model","Manufacturer", "Name", "UserName"
Just copy and paste the code above, the word “computersystem” does not need to be change to a computer name.
A sample output below will be generated if the co…