Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default Append Unique Records to Master Worksheet

I have a Master Worksheet with historical data that I do all of my reporting
and charting from. It is rows of various data by create date with a unique
record identifier (Ticket Number). Each weekday, I get a new list of records
in and Update Worksheet with the past 7 days of records using MSQuery through
ODBC to external data. Some of the records repeat and others of them are new.
I would like to append only the NEW unique records (based on Ticket Number)
from the Update Worksheet into the Master Worksheet.

This what I tried and got stuck on --
The Master data is sorted so I can do a vlookup on the new record set. If
the record is new, I set the flag to 0, else 1. I created a macro to
autofilter for 0. In my macro, I selected Cell A1. I moved the cursor down 1
to eliminate the header row and then selected all the filtered data. This
would work fine if the first filtered row was always row 2 but as it turns
out, the macro recorded Row 54 as the first filtered row under the header
row. Unfortunately, this will not always be the case.

Can you please help me automate this task?
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default Append Unique Records to Master Worksheet

Post the recorded macro and we wil make changes as required. It is easier to
get it right by modifying the recorded code rather than send new code.

"Forest" wrote:

I have a Master Worksheet with historical data that I do all of my reporting
and charting from. It is rows of various data by create date with a unique
record identifier (Ticket Number). Each weekday, I get a new list of records
in and Update Worksheet with the past 7 days of records using MSQuery through
ODBC to external data. Some of the records repeat and others of them are new.
I would like to append only the NEW unique records (based on Ticket Number)
from the Update Worksheet into the Master Worksheet.

This what I tried and got stuck on --
The Master data is sorted so I can do a vlookup on the new record set. If
the record is new, I set the flag to 0, else 1. I created a macro to
autofilter for 0. In my macro, I selected Cell A1. I moved the cursor down 1
to eliminate the header row and then selected all the filtered data. This
would work fine if the first filtered row was always row 2 but as it turns
out, the macro recorded Row 54 as the first filtered row under the header
row. Unfortunately, this will not always be the case.

Can you please help me automate this task?

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default Append Unique Records to Master Worksheet

Sub UpdateMaster()
'
'

'
Sheets("UpdateData").Select
Range("A2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(Selection, Selection.End(xlToRight)).Select
Range("A2").Select
Selection.End(xlToRight).Select
Selection.AutoFilter Field:=23, Criteria1:="0"
Selection.End(xlToLeft).Select
Range("A157").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("MasterData").Select
Range("A2").Select
Selection.End(xlDown).Select
Range("A10936").Select <===This is where I attempted to go to the first
available blank line.
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("UpdateData").Select
Range("A2").Select
Application.CutCopyMode = False
ActiveSheet.ShowAllData
Sheets("MasterData").Select
End Sub


"Joel" wrote:

Post the recorded macro and we wil make changes as required. It is easier to
get it right by modifying the recorded code rather than send new code.

"Forest" wrote:

I have a Master Worksheet with historical data that I do all of my reporting
and charting from. It is rows of various data by create date with a unique
record identifier (Ticket Number). Each weekday, I get a new list of records
in and Update Worksheet with the past 7 days of records using MSQuery through
ODBC to external data. Some of the records repeat and others of them are new.
I would like to append only the NEW unique records (based on Ticket Number)
from the Update Worksheet into the Master Worksheet.

This what I tried and got stuck on --
The Master data is sorted so I can do a vlookup on the new record set. If
the record is new, I set the flag to 0, else 1. I created a macro to
autofilter for 0. In my macro, I selected Cell A1. I moved the cursor down 1
to eliminate the header row and then selected all the filtered data. This
would work fine if the first filtered row was always row 2 but as it turns
out, the macro recorded Row 54 as the first filtered row under the header
row. Unfortunately, this will not always be the case.

Can you please help me automate this task?

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default Append Unique Records to Master Worksheet

This should work. I simplified your code. The macro recorder really makes
the code much more complicated than required. I used the specialcells method
to copy the visible rows.

Sub UpdateMaster()
'
'

'
With Sheets("UpdateData")
.Range("A2").QueryTable.Refresh BackgroundQuery:=False

'get range of cells onUpdateData sheets
UpdateLastRow = .Range("A" & Rows.Count). _
End(xlUp).Row
Set UpdateRows = .Rows("2:" & UpdateLastRow)

'filter on column W
.Range("W2").AutoFilter Field:=1, Criteria1:="0"

'find where first blank row is on Master Data sheet
MasterLastRow = Sheets("MasterData").Range("A" & Rows.Count). _
End(xlUp).Row
NewRow = MasterLastRow + 1

'Copy visible cells from UpdateData sheet to Master Sheet
'Replace formulas with values
UpdateRows.SpecialCells(xlCellTypeVisible).Copy
Sheets("MasterData").Range("A" & NewRow).PasteSpecial _
Paste:=xlPasteValues

'Unfilter UpdateData sheet
.ShowAllData
End With
End Sub


"Forest" wrote:

Sub UpdateMaster()
'
'

'
Sheets("UpdateData").Select
Range("A2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(Selection, Selection.End(xlToRight)).Select
Range("A2").Select
Selection.End(xlToRight).Select
Selection.AutoFilter Field:=23, Criteria1:="0"
Selection.End(xlToLeft).Select
Range("A157").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("MasterData").Select
Range("A2").Select
Selection.End(xlDown).Select
Range("A10936").Select <===This is where I attempted to go to the first
available blank line.
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("UpdateData").Select
Range("A2").Select
Application.CutCopyMode = False
ActiveSheet.ShowAllData
Sheets("MasterData").Select
End Sub


"Joel" wrote:

Post the recorded macro and we wil make changes as required. It is easier to
get it right by modifying the recorded code rather than send new code.

"Forest" wrote:

I have a Master Worksheet with historical data that I do all of my reporting
and charting from. It is rows of various data by create date with a unique
record identifier (Ticket Number). Each weekday, I get a new list of records
in and Update Worksheet with the past 7 days of records using MSQuery through
ODBC to external data. Some of the records repeat and others of them are new.
I would like to append only the NEW unique records (based on Ticket Number)
from the Update Worksheet into the Master Worksheet.

This what I tried and got stuck on --
The Master data is sorted so I can do a vlookup on the new record set. If
the record is new, I set the flag to 0, else 1. I created a macro to
autofilter for 0. In my macro, I selected Cell A1. I moved the cursor down 1
to eliminate the header row and then selected all the filtered data. This
would work fine if the first filtered row was always row 2 but as it turns
out, the macro recorded Row 54 as the first filtered row under the header
row. Unfortunately, this will not always be the case.

Can you please help me automate this task?

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default Append Unique Records to Master Worksheet

I found an error . Make change below. You can't copy a row object onto a
range object. The source and destination must be of the same type.

from
Sheets("MasterData").Range("A" & NewRow).PasteSpecial _
Paste:=xlPasteValues
to
Sheets("MasterData").Rows(NewRow).PasteSpecial _
Paste:=xlPasteValues

"Joel" wrote:

This should work. I simplified your code. The macro recorder really makes
the code much more complicated than required. I used the specialcells method
to copy the visible rows.

Sub UpdateMaster()
'
'

'
With Sheets("UpdateData")
.Range("A2").QueryTable.Refresh BackgroundQuery:=False

'get range of cells onUpdateData sheets
UpdateLastRow = .Range("A" & Rows.Count). _
End(xlUp).Row
Set UpdateRows = .Rows("2:" & UpdateLastRow)

'filter on column W
.Range("W2").AutoFilter Field:=1, Criteria1:="0"

'find where first blank row is on Master Data sheet
MasterLastRow = Sheets("MasterData").Range("A" & Rows.Count). _
End(xlUp).Row
NewRow = MasterLastRow + 1

'Copy visible cells from UpdateData sheet to Master Sheet
'Replace formulas with values
UpdateRows.SpecialCells(xlCellTypeVisible).Copy
Sheets("MasterData").Range("A" & NewRow).PasteSpecial _
Paste:=xlPasteValues

'Unfilter UpdateData sheet
.ShowAllData
End With
End Sub


"Forest" wrote:

Sub UpdateMaster()
'
'

'
Sheets("UpdateData").Select
Range("A2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(Selection, Selection.End(xlToRight)).Select
Range("A2").Select
Selection.End(xlToRight).Select
Selection.AutoFilter Field:=23, Criteria1:="0"
Selection.End(xlToLeft).Select
Range("A157").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("MasterData").Select
Range("A2").Select
Selection.End(xlDown).Select
Range("A10936").Select <===This is where I attempted to go to the first
available blank line.
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("UpdateData").Select
Range("A2").Select
Application.CutCopyMode = False
ActiveSheet.ShowAllData
Sheets("MasterData").Select
End Sub


"Joel" wrote:

Post the recorded macro and we wil make changes as required. It is easier to
get it right by modifying the recorded code rather than send new code.

"Forest" wrote:

I have a Master Worksheet with historical data that I do all of my reporting
and charting from. It is rows of various data by create date with a unique
record identifier (Ticket Number). Each weekday, I get a new list of records
in and Update Worksheet with the past 7 days of records using MSQuery through
ODBC to external data. Some of the records repeat and others of them are new.
I would like to append only the NEW unique records (based on Ticket Number)
from the Update Worksheet into the Master Worksheet.

This what I tried and got stuck on --
The Master data is sorted so I can do a vlookup on the new record set. If
the record is new, I set the flag to 0, else 1. I created a macro to
autofilter for 0. In my macro, I selected Cell A1. I moved the cursor down 1
to eliminate the header row and then selected all the filtered data. This
would work fine if the first filtered row was always row 2 but as it turns
out, the macro recorded Row 54 as the first filtered row under the header
row. Unfortunately, this will not always be the case.

Can you please help me automate this task?



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default Append Unique Records to Master Worksheet

Thank you so much! I wound up needing to make a few tweaks to fit reality but
this was great help and a very quick turn around of information.

Forest

"Joel" wrote:

This should work. I simplified your code. The macro recorder really makes
the code much more complicated than required. I used the specialcells method
to copy the visible rows.

Sub UpdateMaster()
'
'

'
With Sheets("UpdateData")
.Range("A2").QueryTable.Refresh BackgroundQuery:=False

'get range of cells onUpdateData sheets
UpdateLastRow = .Range("A" & Rows.Count). _
End(xlUp).Row
Set UpdateRows = .Rows("2:" & UpdateLastRow)

'filter on column W
.Range("W2").AutoFilter Field:=1, Criteria1:="0"

'find where first blank row is on Master Data sheet
MasterLastRow = Sheets("MasterData").Range("A" & Rows.Count). _
End(xlUp).Row
NewRow = MasterLastRow + 1

'Copy visible cells from UpdateData sheet to Master Sheet
'Replace formulas with values
UpdateRows.SpecialCells(xlCellTypeVisible).Copy
Sheets("MasterData").Range("A" & NewRow).PasteSpecial _
Paste:=xlPasteValues

'Unfilter UpdateData sheet
.ShowAllData
End With
End Sub


"Forest" wrote:

Sub UpdateMaster()
'
'

'
Sheets("UpdateData").Select
Range("A2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(Selection, Selection.End(xlToRight)).Select
Range("A2").Select
Selection.End(xlToRight).Select
Selection.AutoFilter Field:=23, Criteria1:="0"
Selection.End(xlToLeft).Select
Range("A157").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("MasterData").Select
Range("A2").Select
Selection.End(xlDown).Select
Range("A10936").Select <===This is where I attempted to go to the first
available blank line.
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("UpdateData").Select
Range("A2").Select
Application.CutCopyMode = False
ActiveSheet.ShowAllData
Sheets("MasterData").Select
End Sub


"Joel" wrote:

Post the recorded macro and we wil make changes as required. It is easier to
get it right by modifying the recorded code rather than send new code.

"Forest" wrote:

I have a Master Worksheet with historical data that I do all of my reporting
and charting from. It is rows of various data by create date with a unique
record identifier (Ticket Number). Each weekday, I get a new list of records
in and Update Worksheet with the past 7 days of records using MSQuery through
ODBC to external data. Some of the records repeat and others of them are new.
I would like to append only the NEW unique records (based on Ticket Number)
from the Update Worksheet into the Master Worksheet.

This what I tried and got stuck on --
The Master data is sorted so I can do a vlookup on the new record set. If
the record is new, I set the flag to 0, else 1. I created a macro to
autofilter for 0. In my macro, I selected Cell A1. I moved the cursor down 1
to eliminate the header row and then selected all the filtered data. This
would work fine if the first filtered row was always row 2 but as it turns
out, the macro recorded Row 54 as the first filtered row under the header
row. Unfortunately, this will not always be the case.

Can you please help me automate this task?

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How?Create master worksheet xls that will update previous records ABC Excel Discussion (Misc queries) 0 June 29th 06 03:28 PM
append only new SQL db records via XLS qry Patience Excel Programming 0 February 9th 06 08:10 PM
How to Append the Data to the Master Table Shiva Excel Worksheet Functions 7 November 8th 05 05:00 AM
how do i append 4 differnt worksheets in a new master work sheets darsg Excel Programming 2 April 28th 05 09:38 AM
use macro to append records to worksheet goingtospace Excel Programming 0 December 2nd 04 01:12 PM


All times are GMT +1. The time now is 03:13 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"