Copy range from sheet to sheet using VBA

Jo4x4

Board Regular
Joined
Jan 8, 2011
Messages
136
Hi Everybody,

I am currently using this code to copy data from one sheet to the other.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    Const sOrig As String = "Results" '<- Base sheet
    Const sNew As String = "Club scores"  '<- Destination sheet
    Const CopyCols As String = "b:K"  '<- Columns to copy
    
    With ActiveSheet
        If .Name = sOrig Then
            Application.ScreenUpdating = False
            With Sheets(sNew)
                Intersect(.UsedRange, .Columns(CopyCols)).Clear
            End With
            Intersect(.UsedRange, .Columns(CopyCols)).Copy _
                Destination:=Sheets(sNew).Range("B1")
            Sheets(sOrig).Select
            Application.ScreenUpdating = True
        End If
    End With
End Sub


However, it has now become necessary to copy only range B3:K 62, as there are different calculations done in the lower rows of columns A to K.

Any advise please?

Thanks
Jo
Win XP, Excel 2007
 

Excel Facts

Save Often
If you start asking yourself if now is a good time to save your Excel workbook, the answer is Yes
Untested, but try
Rich (BB code):
Private Sub Worksheet_Change(ByVal Target As Range)

    Const sOrig As String = "Results" '<- Base sheet
    Const sNew As String = "Club scores"  '<- Destination sheet
    Const CopyCols As String = "b:K"  '<- Columns to copy
    Const sCopyRows As String = "3:62" '<- Rows to copy
    
    With ActiveSheet
        If .Name = sOrig Then
            Application.ScreenUpdating = False
            With Sheets(sNew)
                Intersect(.UsedRange, .Columns(CopyCols)).Clear
            End With
            Intersect(.UsedRange, .Columns(CopyCols), .Rows(sCopyRows)).Copy _
                Destination:=Sheets(sNew).Range("B1")
            Sheets(sOrig).Select
            Application.ScreenUpdating = True
        End If
    End With
End Sub
 
Upvote 0
Or perhaps this
Rich (BB code):
Private Sub Worksheet_Change(ByVal Target As Range)

    Const sOrig As String = "Results" '<- Base sheet
    Const sNew As String = "Club scores"  '<- Destination sheet
    Const CopyRng As String = "B3:K62"  '<- Range to copy
    
    With ActiveSheet
        If .Name = sOrig Then
            Application.ScreenUpdating = False
            With Sheets(sNew)
                Intersect(.UsedRange, .Columns(CopyCols)).Clear
            End With
            Intersect(.UsedRange, .Range(CopyRng)).Copy _
                Destination:=Sheets(sNew).Range("B1")
            Sheets(sOrig).Select
            Application.ScreenUpdating = True
        End If
    End With
End Sub
 
Upvote 0

Forum statistics

Threads
1,224,600
Messages
6,179,836
Members
452,947
Latest member
Gerry_F

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top