Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
Max Max is offline
external usenet poster
 
Posts: 390
Default Teach me to Merge Data

Hello All,
Would someone be prepared to teach me how to do what I need in my question
below?

If possible (willing) please help.

I am trying to copy data from one file into another.
I have copied code from various sites and tried to manipulate that code to
do what I want it to do.
No success, as I am a novice code writing understanding what is happening
and how to change it is the problem.

I need your help if possible please.

Here is what I would like to happen.
The base or main file is called RMA.xls.
The other file which is e-mailed to me is called RMA LMR.xls.
Columns A to K have the same headings in the two files.
In the RMA.xls file Columns L to P are different to RMA LMR.xls and unique.
RMA LMR.xls has Columns L to M that are different and unique to this file.

Column B has the list of unique ID for both files.
What must happen is as follows:
1: RMA.xls. is open and RMA LMR.xls must be found and selected to be opened.
2: Compare the two ID keys to see that they correspond. RMA LMR.xls to
RMA.xls. (RMA.xls.is the base).
3: Copy the data in Column L and M from RMA LMR.xls. to RMA.xls, ensuring
that the relevant Ids match exactly.
4: Close RMA LMR.xls.
5: Save RMA.xls.

If you are able please help.

Thank you and best regards

Max

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,533
Default Teach me to Merge Data

Hi Max

Place this code in RMA.xls.
I assume you want to copy data from column L and M to column L and M in
RMA.xls, and data is in Sheet1 in both workbooks.

Sub MergeData()
Dim wbA As Workbook
Dim wbB As Workbook
Dim shA As Worksheet
Dim shB As Worksheet
Dim IdRangeA As Range
Dim IdRangeB As Range
Dim IdCol As String
Dim FirstRow As Long, LastRowA As Long, LastRowB As Long

Set wbA = ThisWorkbook
Set wbB = Workbooks.Open(Application.GetOpenFilename)
Set shA = wbA.Worksheets("Sheet1")
Set shB = wbB.Worksheets("Sheet1")

IdCol = "B"
FirstRow = 2 ' Headings in row 1
LastRowA = shA.Range(IdCol & Rows.Count).End(xlUp).Row
LastRowB = shB.Range(IdCol & Rows.Count).End(xlUp).Row
Set IdRangeA = shA.Range(IdCol & FirstRow, IdCol & LastRowA)
Set IdRangeB = shB.Range(IdCol & FirstRow, IdCol & LastRowB)

For Each ID In IdRangeB
Set f = IdRangeA.Find(ID.Value, After:=shA.Range(IdCol & 2), _
LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext)
If Not f Is Nothing Then
ID.Offset(0, 10).Resize(1, 2).Copy Destination:= f.Offset(0, 10)
Else
msg = MsgBox("Id " & ID.Value & " was not found in " & _
ActiveWorkbook.Name & vbLf & vbLf & _
"Click OK to continue", vbInformation, "Warning!")
End If
Next
wbB.Close
wbA.Save
End Sub

Regards,
Per

"Max" skrev i meddelelsen
...
Hello All,
Would someone be prepared to teach me how to do what I need in my question
below?

If possible (willing) please help.

I am trying to copy data from one file into another.
I have copied code from various sites and tried to manipulate that code to
do what I want it to do.
No success, as I am a novice code writing understanding what is happening
and how to change it is the problem.

I need your help if possible please.

Here is what I would like to happen.
The base or main file is called RMA.xls.
The other file which is e-mailed to me is called RMA LMR.xls.
Columns A to K have the same headings in the two files.
In the RMA.xls file Columns L to P are different to RMA LMR.xls and
unique.
RMA LMR.xls has Columns L to M that are different and unique to this file.

Column B has the list of unique ID for both files.
What must happen is as follows:
1: RMA.xls. is open and RMA LMR.xls must be found and selected to be
opened.
2: Compare the two ID keys to see that they correspond. RMA LMR.xls to
RMA.xls. (RMA.xls.is the base).
3: Copy the data in Column L and M from RMA LMR.xls. to RMA.xls, ensuring
that the relevant Ids match exactly.
4: Close RMA LMR.xls.
5: Save RMA.xls.

If you are able please help.

Thank you and best regards

Max


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default Teach me to Merge Data

You have to change the sheet names but everything else can remain the same

Sub MergeFiles()


FiletoOpen = Application _
.GetOpenFilename(Filefilter:="Excel Files (*.xls), *.xls", _
Title:="OPen LMR file")
If FiletoOpen = False Then
MsgBox ("Cannot Open file - Exing Macro")
Exit Sub
End If

Set BaseFile = Workbooks("RMA.xls")
Set BaseSht = BaseFile.Sheets("Sheet1")

Set LMSFile = Workbooks.Open(Filename:=FiletoOpen)
Set LMSSht = LMSFile.Sheets("Sheet1")

'Add data that is not found to the end of the worksheet
LastRow = BaseSheet.Range("B" & Rows.Count).End(xlUp).Row
NewRow = LastRow + 1

With LMSSht
RowCount = 1
Do While .Range("B" & RowCount) < ""
ID = .Range("B" & RowCount)
Set NewDat = .Range("L" & RowCount & ":M" & RowCount)

With BaseSht
Set c = .Columns("B").Find(what:=ID, _
LookIn:=xlValues, lookat:=xlWhole)

If c Is Nothing Then
'Add New row
.Range("A" & NewRow) = ID
NewData.Copy Destination:=.Range("L" & NewRow)
NewRow = NewRow + 1
Else
NewData.Copy Destination:=.Range("L" & c.Row)
End If
End With
RowCount = RowCount + 1
Loop
End With

End Sub


"Max" wrote:

Hello All,
Would someone be prepared to teach me how to do what I need in my question
below?

If possible (willing) please help.

I am trying to copy data from one file into another.
I have copied code from various sites and tried to manipulate that code to
do what I want it to do.
No success, as I am a novice code writing understanding what is happening
and how to change it is the problem.

I need your help if possible please.

Here is what I would like to happen.
The base or main file is called RMA.xls.
The other file which is e-mailed to me is called RMA LMR.xls.
Columns A to K have the same headings in the two files.
In the RMA.xls file Columns L to P are different to RMA LMR.xls and unique.
RMA LMR.xls has Columns L to M that are different and unique to this file.

Column B has the list of unique ID for both files.
What must happen is as follows:
1: RMA.xls. is open and RMA LMR.xls must be found and selected to be opened.
2: Compare the two ID keys to see that they correspond. RMA LMR.xls to
RMA.xls. (RMA.xls.is the base).
3: Copy the data in Column L and M from RMA LMR.xls. to RMA.xls, ensuring
that the relevant Ids match exactly.
4: Close RMA LMR.xls.
5: Save RMA.xls.

If you are able please help.

Thank you and best regards

Max

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
teach me how to do range address syntax John Keith Excel Programming 2 January 22nd 09 12:27 PM
Onboard Excel help...teach a man to fish... NoMagic@Certegy Excel Discussion (Misc queries) 3 November 1st 06 04:06 PM
How to use the 'if' - function? Pls teach me... Ms Hoo Excel Worksheet Functions 2 August 26th 06 11:39 AM
Macros - teach myself the basics abfabrob Excel Discussion (Misc queries) 1 November 29th 05 10:46 AM
Is it possible to teach ones self VBA? Ron[_28_] Excel Programming 11 August 25th 04 09:01 PM


All times are GMT +1. The time now is 12:28 PM.

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"