NewCalc
NewCalc

Reputation: 3

Merging two macros

I have a sheet with raw data called "Raw Data" I want to copy this data into another sheet called "Data".

In "Raw Data" I have a Named Range called "RawTab1" In "Data" I have a Table called "DataTable" where I want to paste the data from range "RawTab1" but not the two first two rows from the range "RawTab1"

A have made this macro to cleare the data in the DataTable before pasting the new data from RawTab1:

    Dim sht As Worksheet
    Set sht = ThisWorkbook.Worksheets("Data")
        Range("A3:M3", sht.Range("A3:M3").End(xlDown)).ClearContents
    End Sub

And this is the macro to copy the data from RawTab1 range into the DataTable

  Sub CopyRawTab1()
Application.Goto Reference:="RawTab1"
Selection.Copy
Sheets("Data").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
End Sub

So my questions are:

  1. How can I merge these two macros?
  2. How can avoide not to paste the two first rows from RawTab1 into the DataTable?

Upvotes: 0

Views: 58

Answers (1)

Pᴇʜ
Pᴇʜ

Reputation: 57683

It should be something like the following:

Option Explicit

Public Sub Combined()
    Dim sht As Worksheet
    Set sht = ThisWorkbook.Worksheets("Data")
    sht.Range("A3:M3", sht.Range("A3:M3").End(xlDown)).ClearContents

    With Worksheets("Raw Data").Range("RawTab1")
        'copy everything from RawTab1 but not the first 2 rows
        .Resize(RowSize:=.Rows.Count - 2).Offset(RowOffset:=2).Copy
    End With

    sht.Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub

Note that I used a combination of the Range.Resize property and the Range.Offset property to remove the first to rows of the RawTab1 range before copying it.

Upvotes: 1

Related Questions