VBA Error

S

Scott Halper

I am getting this error on the code below. Run-Time '438': Object
doesn't support this property or method"

Private Sub FourthChoose_Click()
Const PWORD As String = "123456"
Application.ScreenUpdating = False
With Worksheets("Model")
.Activate
.Unprotect Password:=PWORD
.Range("O56").Select
.Columns("R:R").Select
.Selection.Cut
.Columns("O:O").Select
.Selection.Insert Shift:=xlToRight
.Application.CalculateFull
.Columns("S:S").Select
.Selection.Cut
.Columns("Q:Q").Select
.Selection.Insert Shift:=xlToRight
.Application.CalculateFull
.Columns("T:T").Select
.Selection.Cut
.Columns("S:S").Select
.Selection.Insert Shift:=xlToRight
.Application.CalculateFull
.Range("V24").Select
.Protect Password:=PWORD
End With
Application.ScreenUpdating = True
End Sub

Also, is there a way to disable a user from seeing the VBA code of the
excel file when this particular file is open, since I have to show the
password to make some changes and then relock the file.

Thanks for the help.

Scott
 
D

Dave Peterson

Drop the dots in front of each of the .Selection and .application lines.

But you can drop all the .selects and work on the ranges directly:

Option Explicit
Private Sub FourthChoose_Click()
Const PWORD As String = "123456"
Application.ScreenUpdating = False
With Worksheets("Model")
.Select
.Unprotect Password:=PWORD
.Columns("R:R").Cut
.Columns("O:O").Insert Shift:=xlToRight
Application.CalculateFull
.Columns("S:S").Cut
.Columns("Q:Q").Insert Shift:=xlToRight
Application.CalculateFull
.Columns("T:T").Cut
.Columns("S:S").Insert Shift:=xlToRight
.Application.CalculateFull
.Range("V24").Select
.Protect Password:=PWORD
End With
Application.ScreenUpdating = True
End Sub

And the only reason to keep the .Select line is that you wanted to select V24.
If you drop that requirement, you can lose both the .select line and the
..range("v24").select line.

Select your project
Tools|VBAProject|Protection tab
Give it a memorable password

Note that there are inexpensive project password breakers available. You won't
stop all, but you'll stop most.

And on top of that worksheet password breakers are easy/free to find.

And you sure you need those .calculatefull lines?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top