View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Per Jessen[_2_] Per Jessen[_2_] is offline
external usenet poster
 
Posts: 703
Default Set a range on a variable sheet?

Hi

Set the Rng variable within the WrkSht loop:

Sub SearchDesc()
Dim Cell As Range
Dim Rng As Range
Dim WrkSht As Worksheet
Dim myText As String
Dim LastRow As Long

myText = Sheets("Summary").TextBoxDesc.Value

If myText = "" Then Exit Sub

For Each WrkSht In ThisWorkbook.Worksheets
If WrkSht.Name = "Sheet1" Or WrkSht.Name = "Sheet2" Then GoTo
myNext
LastRow = Sheets(WrkSht.Name).Range("D" & Rows.Count).End
(xlUp).Row
Set Rng = Worksheets(WrkSht.Name).Range("D1:D" & LastRow)
For Each Cell In Rng
If myText = Cell.Value Then
Cell.EntireRow.Copy
Sheets("sheet name").Range("A65536").End(xlUp).Offset
(1, 0).PasteSpecial
End If
Next Cell

myNext:
Next WrkSht
End Sub

Regards,
Per

On 14 Dec., 16:27, Noob McKnownowt
wrote:
Hey guys, me again :)

I am having *a problem, below i have written some code but cant figure one
particular bit out.

I am searching through multiple sheets for a match to user input, the
problem i am having is i am unable to set the range to be seached over
multiple sheets. its always the same column, but .usedrange doesn't seem to
work for me in this instance.

The line i am having problems with i have highlighted with *** either side
of the code.

Sub SearchDesc()

Dim Cell As Range
Dim Rng As Range
Dim WrkSht As Worksheet
Dim myText As String

myText = Sheets("Summary").TextBoxDesc.Value
***Set Rng = Sheets(Variable sheet name Here).Range("D:D")***

If myText = "" Then Exit Sub

For Each WrkSht In ThisWorkbook.Worksheets
* * If WrkSht.Name = "sheet1" Or WrkSht.Name = "sheet2" Then GoTo myNext
* * * * For Each Cell In Rng
* * * * * * If myText = Cell.Value Then
* * * * * * * * Cell.EntireRow.Copy
* * * * * * * * Sheets("sheet name").Range("A65536").End(xlUp).Offset(1,
0).PasteSpecial
* * * * * * End If
* * * * Next Cell

myNext:

Next WrkSht

End Sub

Any assistance would be very much apprieciated.

Cheers Lads.

The Noob