Can't select range

S

salgud

The following code works until the last line:

Option Explicit

Public Sub TribalInvCheck()
Dim wbTribalHist As Workbook
Dim wbTribalTR As Workbook
Dim wsTribalTR As Worksheet
Dim wsTribalHist As Worksheet
Dim rTRCell As Range
Dim lTRRow As Long
Dim lHistRow As Long
Dim rFoundID As Range
Dim sTRID As String
Dim rTribalHist As Range
Dim lHistCol As Long

Set wbTribalHist = ThisWorkbook
Set wbTribalTR = ActiveWorkbook
Set wsTribalTR = ActiveSheet
Set wsTribalHist = wbTribalHist.Worksheets("Historical")
'Range set temporarily until I can find out how to set the range to the
longest column in the range
Set rTribalHist = wsTribalHist.Range("A3:Iv150")

'Application.ScreenUpdating = False

If ThisWorkbook.Name = ActiveWorkbook.Name Then
MsgBox "Please do not run this macro from the workbook that contains it."
_
& Chr(10) & "Please select a Turnaround Report and then restart this
macro."
Exit Sub
End If

Set rTRCell = wsTribalTR.Range("A3")
sTRID = rTRCell.Value

Set rFoundID = rTribalHist.Find(sTRID, LookIn:=xlValues)
'wsTribalHist.Activate
'rFoundID.Select

lTRRow = 3
lHistRow = rFoundID.Row + 2
lHistCol = rFoundID.Column

wsTribalHist.Activate
wsTribalHist.Range(Cells(lHistRow, lHistCol)).Select <--- Method range of
object worksheet failed

End Sub

Any ideas why it doesn't recognize this range?
Thanks!
 
X

XP

I haven't tested it all the way through but I think you may need to change
this line:

wsTribalHist.Range(Cells(lHistRow, lHistCol)).Select

to this:

wsTribalHist.ActiveSheet.Cells(lHistRow, lHistCol).Select

Hope this helps.
 
J

james.billy

The following code works until the last line:

Option Explicit

Public Sub TribalInvCheck()
Dim wbTribalHist As Workbook
Dim wbTribalTR As Workbook
Dim wsTribalTR As Worksheet
Dim wsTribalHist As Worksheet
Dim rTRCell As Range
Dim lTRRow As Long
Dim lHistRow As Long
Dim rFoundID As Range
Dim sTRID As String
Dim rTribalHist As Range
Dim lHistCol As Long

Set wbTribalHist = ThisWorkbook
Set wbTribalTR = ActiveWorkbook
Set wsTribalTR = ActiveSheet
Set wsTribalHist = wbTribalHist.Worksheets("Historical")
'Range set temporarily until I can find out how to set the range to the
longest column in the range
Set rTribalHist = wsTribalHist.Range("A3:Iv150")

'Application.ScreenUpdating = False

If ThisWorkbook.Name = ActiveWorkbook.Name Then
  MsgBox "Please do not run this macro from the workbook that contains it."
_
    & Chr(10) & "Please select a Turnaround Report and then restart this
macro."
  Exit Sub
End If

Set rTRCell = wsTribalTR.Range("A3")
sTRID = rTRCell.Value

Set rFoundID = rTribalHist.Find(sTRID, LookIn:=xlValues)
'wsTribalHist.Activate
'rFoundID.Select

lTRRow = 3
lHistRow = rFoundID.Row + 2
lHistCol = rFoundID.Column

wsTribalHist.Activate
wsTribalHist.Range(Cells(lHistRow, lHistCol)).Select <--- Method range of
object worksheet failed

End Sub

Any ideas why it doesn't recognize this range?
Thanks!

When you stop the code (i.e. put a breakpoint in) what are the
variables lHistRow and lHistCol, to me the only thing that would make
any sense is if it wasn't finding sTRID. Either that or the active
workbook wasn't wbTribalHist, aslong as the activeworkbook is
wbTribalHist (so try changing the wsTribalHist to wbTribalHist) the
range should then select (I think).

James
 
J

james.billy

I haven't tested it all the way through but I think you may need to change
this line:

wsTribalHist.Range(Cells(lHistRow, lHistCol)).Select

to this:

wsTribalHist.ActiveSheet.Cells(lHistRow, lHistCol).Select

Hope this helps.

wsTribalHist is a worksheet object therefore there is no point adding
the activesheet as it will error just the same, I believe the problem
is caused because the workbook is not active and thats what needs to
be activated before the range is selected.

James
 
S

salgud

I haven't tested it all the way through but I think you may need to change
this line:

wsTribalHist.Range(Cells(lHistRow, lHistCol)).Select

to this:

wsTribalHist.ActiveSheet.Cells(lHistRow, lHistCol).Select

Hope this helps.

Thanks, that did it. Forgot to try a "." instead of a "(". Sometimes that's
the trick!
 
S

salgud

When you stop the code (i.e. put a breakpoint in) what are the
variables lHistRow and lHistCol, to me the only thing that would make
any sense is if it wasn't finding sTRID. Either that or the active
workbook wasn't wbTribalHist, aslong as the activeworkbook is
wbTribalHist (so try changing the wsTribalHist to wbTribalHist) the
range should then select (I think).

James

Thanks for your reply. See XP's reply above, that was it.
 

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