Problem copying name range

I

IanC

I have the following section of code which is intended to copy a named range
to A4 if the content of C3 is anything except "TWAIN i/f". Didapikit is a
named range (1 row, 5 columns) on another sheet in the workbook and if I
place the line elsewhere in the code (ie not in this subroutine) it will
copy the range.

The worksheet is protected at the point of entry into this subroutine, but
it doesn't make any difference if I uncomment the protect/unprotect lines.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
' Worksheets("Dental").Unprotect
On Error GoTo sub_exit
If Not Intersect(Target, Worksheets("Dental").Range("C3")) Is Nothing
Then
With Target
If .Value = "TWAIN i/f" Then
With Range("A4:E4")
.ClearContents '
.ClearComments
.Borders.LineStyle = xlNone
.UnMerge
.Locked = True
End With
Else
Didapikit.Copy (Worksheets("Dental").Range("A4"))
End If
End With
End If
sub_exit:
Application.EnableEvents = True
' Worksheets("Dental").Protect
End Sub

Basically, the "If" works, but the "Else" doesn't. Any ideas?
 
I

IanC

The worksheet is protected at the point of entry into this subroutine, but
it doesn't make any difference if I uncomment the protect/unprotect lines.

Sorry, I was wrong about this. If the sheet is protected, the "If" doesn't
work either. The fact remains that the "copy" line doesn't work whether the
sheet is protected or not.
 
G

Gary''s Student

Remember that the name of a range and a range variable are two different
things. Your code will work if Didapikit is a genuine range:

Dim Didapikit as Range
Set Didapikit=Range("A1:Z100")
Didapikit.Copy some_place_else


If, however, Didapikit is a Defined Name, then

Range("Didapikit").Copy some_where_else

should be used.
 
I

IanC

Sorted thanks. The subroutine didn't recognise the named range so I had to
"Set" it at the beginning of the routine.
 

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