Set then print area based on a search
that why
with worksheets("Data")
set rng1 = .Range(.Cells(2,1),.Cells(rows.count,1).End(xlup))
starts in row 2.
--
Regards,
Tom Ogilvy
"Freddy" wrote in message
...
By the way, the "Data" worksheet has one row containing column titles.
"Tom Ogilvy" wrote:
Making assumptions for the myriad of details left out:
Sub PrintCompanies()
Dim rng as Range, rng1 as Range
Dim cell as Range, rTop as Range
Dim rBottom as Range
with worksheets("List")
set rng = .range(.cells(1,1),.cells(1,1).End(xldown))
End with
with worksheets("Data")
set rng1 = .Range(.Cells(2,1),.Cells(rows.count,1).End(xlup))
for each cell in rng
set rTop = rng1.Find(What:=cell, _
After:=rng1(rng1.count), _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
set rBottom = rng1.Find(What:=cell, _
After:=rng1(1), _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False)
if not rTop is nothing then
.range(rtop,rBottom).Resize(1,10).printout
End if
Next
End With
End sub
--
Regards,
Tom Ogilvy
"Freddy" wrote:
I would like to write a VBA macro that reads a predetermined list of
companies then searches rows in a spreadsheet then, when a match is
found,
whether one row or multiples rows, defines the print area then finally
prints
it. The rows in the spreadsheet are already grouped by company name.
Any
suggestions?
|