currentregion

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I want a macro..
that will select a currentregion (starting from A1) and pasting in new sheet

but after pasting.. I want to color the first row and the last row.

The number of row varies..

How canI do it?
 
Dim rng As Range

ActiveSheet.Range("A1").CurrentRegion.Copy
With Worksheets("Sheet2")
.Activate
.Range("A1").Select
.Paste
Set rng = .Range("A1").CurrentRegion
rng.Cells(1, 1).EntireRow.Interior.ColorIndex = 38
rng(rng.Count).EntireRow.Interior.ColorIndex = 38
End With


--

HTH

RP
(remove nothere from the email address if mailing direct)
 
thanks
it works

but it colours the entire row (first and last)

and not just the selection

helps
 
Dim rng As Range
ActiveSheet.Range("A1").CurrentRegion.Copy
With Worksheets("Sheet2")
.Activate
.Range("A1").Select
.Paste
Set rng = .Range("A1").CurrentRegion
rng.Cells(1, 1).resize(1,rng.columns.count).Interior.ColorIndex = 38
rng(rng.Count).EntireRow.resize(1,rng.columns.count) _
.Interior.ColorIndex = 38
End With
 
thanks

But when I paste it in the new sheet at "C20"

It highlights the first row correctly.. but the last row highlight starts
with A20 instead of C20

Also can I add a condition...

If column A... contains word "total".. highlight that enire row?
 
How about this:

Option Explicit
Sub testme01()

Dim rng As Range
Dim DestCell As Range

With Worksheets("sheet1")
Set rng = .Range("A1").CurrentRegion
End With

With Worksheets("sheet2")
Set DestCell = .Range("C20")
End With

rng.Copy _
Destination:=DestCell

DestCell.Resize(1, rng.Columns.Count).Interior.ColorIndex = 38
DestCell.Offset(rng.Rows.Count - 1, 0).Resize(1, rng.Columns.Count) _
.Interior.ColorIndex = 38

End Sub
 
Many thanks it works perfect

Also can we add another conidition to it

IF cell a of the current region contains "Total".. highlight the enitre row?
 
Tack this on at the end

Dim cell As Range
For Each cell In DestCell.CurrentRegion
If cell.Value = "Total" Then
cell.EntireRow.Interior.ColorIndex = 38
End If
Next cell


--

HTH

RP
(remove nothere from the email address if mailing direct)


flow23 said:
Many thanks it works perfect

Also can we add another conidition to it

IF cell a of the current region contains "Total".. highlight the enitre row?
 
Thanks

a small glitch though

The cell contains not only the work Total but maybe "aa45 Total" or various
other options

Can we use wild character?
 
Dim cell As Range
For Each cell In DestCell.CurrentRegion
If cell.Value Like "*Total*" Then
cell.EntireRow.Interior.ColorIndex = 38
End If
Next cell

--

HTH

RP
(remove nothere from the email address if mailing direct)


flow23 said:
Thanks

a small glitch though

The cell contains not only the work Total but maybe "aa45 Total" or various
other options

Can we use wild character?
 
thanks it works now
but it still highlights from column A.. where as the currentregions tstarts
from column c
 
Option Explicit
Sub testme01()

Dim rng As Range
Dim DestCell As Range
Dim cell As Range

With Worksheets("sheet1")
Set rng = .Range("A1").CurrentRegion
End With

With Worksheets("sheet2")
Set DestCell = .Range("C20")
End With

rng.Copy _
Destination:=DestCell

DestCell.Resize(1, rng.Columns.Count).Interior.ColorIndex = 38
DestCell.Offset(rng.Rows.Count - 1, 0).Resize(1, rng.Columns.Count) _
.Interior.ColorIndex = 38

For Each cell In DestCell.CurrentRegion
If LCase(cell.Value) Like LCase("*Total*") Then
Intersect(DestCell.CurrentRegion, cell.EntireRow) _
.Interior.ColorIndex = 38
End If
Next cell

End Sub
 
You asked for the entirerow!

--

HTH

RP
(remove nothere from the email address if mailing direct)
 

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

Back
Top