I checked your previous file learned the concept of Dictionary from your 
examples Tried the same achieved the results before 6 seconds. Ya from now 
I can say Dictionary is much better than the manual vlookup.


Sub t()

    'Doing Variable declaration
    Dim Folderpath As String: Folderpath = 
"C:\Users\Mandeep.baluja\Desktop\Reports Manipulation\"
    Dim Fname1     As String
    Dim Fname2     As String
    Dim Fname3     As String
    Dim Fname4     As String
    Dim Fname5     As String
    Dim wb         As Workbook  'Master workbook'
    Dim wc         As Workbook   'Dump'
    Dim nrows      As Long       'A variable to hold last row of dump sheet'
    
    'Timer to calculate time
    Start = Timer
    
    'Giving files names
    Fname1 = "Test1.xlsx"
    Fname2 = "Test2.xlsx"
    Fname3 = "Test3.xlsx"
    Fname4 = "Test4.xlsx"
    Fname5 = "Test5.xlsx"
    
    'Assigning it to master workbook
    Set wb = ThisWorkbook
    Txt = Folderpath & Fname1
    
    'Opening a particular workbook
    Set wc = Workbooks.Open(Txt)
    
    'Create a dictionary object
    Set DIC_ID = CreateObject("Scripting.dictionary")
    
    'Clearing dictionary
        DIC_ID.RemoveAll
    
    nrows = 
Application.WorksheetFunction.CountA(wc.Sheets(1).Range("A2:A1000000"))
    
    For i = 2 To nrows
        'Filling dictionary object
        If (Not DIC_ID.exists(wc.Sheets(1).Cells(i, 1).Value)) Then
               DIC_ID.Add wc.Sheets(1).Cells(i, 1).Value, 
wc.Sheets(1).Cells(i, 5).Value
       End If
    Next
    
    'Getting values to Current Sheet
    lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 2 To lr
               wb.Sheets(1).Cells(i, 2) = DIC_ID.Item(wb.Sheets(1).Cells(i, 
1).Value)
    Next
    
    MsgBox Format((Timer - Start) / 86400, "hh:mm:ss")
    
End Sub



Regards, 
Mandeep Baluja 














On Monday, November 9, 2015 at 5:39:30 PM UTC+5:30, Paul Schreiner wrote:
>
> What format are the original (5) files in?
> Are they text, csv, or excel files?
>
> What is the relationship between the 90,000 records and the other 5 files?
> That is, do the records show up once in the list of 90,000 and show up 
> multiple times in the 5 files?
> What are the "key" field?  (those in common that "relate" the two records?)
> For instance, an "Order Number", or ??
>
> First: for a set of records of this size, I would NOT use vlookup.
> The problem with vlookup is that it executes each time a "calculation" is 
> done on the workbook, even though it already has an answer.
>
> So, if you have 90,000 vlookups, and change the heading, it executes 
> 90,000 times.
>
> I would definitely use a Dictionary object.
>
> HOW I'd use it would depend on the relationship between the files
>
> If you could send me some sample files, I'd be glad to throw something 
> together for you to look at.
>
> *Paul*
> -----------------------------------------
>
>
>
>
>
>
>
> *“Do all the good you can,By all the means you can,In all the ways you 
> can,In all the places you can,At all the times you can,To all the people 
> you can,As long as ever you can.” - John Wesley*
> -----------------------------------------
>
> ------------------------------
> *From:* Mandeep Baluja <rocke...@gmail.com <javascript:>>
> *To:* MS EXCEL AND VBA MACROS <excel-...@googlegroups.com <javascript:>> 
> *Sent:* Monday, November 9, 2015 5:22 AM
> *Subject:* $$Excel-Macros$$ Query for Paul
>
> Hi Paul,
>
> I need your Suggestion Basically I have a master file having Approx 90,000 
> Orders no in this Sheet. From 5 Files I need to fetch the Data 
> Corresponding to that Orders nos Ya Columns value, Each file has specific 
> data related to master Orders nos, Manual Vlookup i can use I know that to 
> get the data from files, Now I want to automate this process Which is the 
> fastest way to get the data from all file Please suggest the correct one 
>
> 1. Whether i should use vlookups in the VBA  to get the data present in 
> others files corresponding to order no, 
> 2. Do i need to use Loops for efficient checking of data 
> 3. Should i use Dictionary object and store the orders no and use this 
> techniques.   
>
> I know how to do this but Still looking for the faster one. 
>
> Regards, 
> Mandeep baluja 
> -- 
> Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
> =TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
> https://www.facebook.com/discussexcel
>  
> FORUM RULES
>  
> 1) Use concise, accurate thread titles. Poor thread titles, like Please 
> Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice 
> will not get quick attention or may not be answered.
> 2) Don't post a question in the thread of another member.
> 3) Don't post questions regarding breaking or bypassing any security 
> measure.
> 4) Acknowledge the responses you receive, good or bad.
> 5) Jobs posting is not allowed.
> 6) Sharing copyrighted material and their links is not allowed.
>  
> NOTE : Don't ever post confidential data in a workbook. Forum owners and 
> members are not responsible for any loss.
> --- 
> You received this message because you are subscribed to the Google Groups 
> "MS EXCEL AND VBA MACROS" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to excel-macros...@googlegroups.com <javascript:>.
> To post to this group, send email to excel-...@googlegroups.com 
> <javascript:>.
> Visit this group at http://groups.google.com/group/excel-macros.
> For more options, visit https://groups.google.com/d/optout.
>
>
>

-- 
Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
https://www.facebook.com/discussexcel

FORUM RULES

1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get 
quick attention or may not be answered.
2) Don't post a question in the thread of another member.
3) Don't post questions regarding breaking or bypassing any security measure.
4) Acknowledge the responses you receive, good or bad.
5) Jobs posting is not allowed.
6) Sharing copyrighted material and their links is not allowed.

NOTE  : Don't ever post confidential data in a workbook. Forum owners and 
members are not responsible for any loss.
--- 
You received this message because you are subscribed to the Google Groups "MS 
EXCEL AND VBA MACROS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to excel-macros+unsubscr...@googlegroups.com.
To post to this group, send email to excel-macros@googlegroups.com.
Visit this group at http://groups.google.com/group/excel-macros.
For more options, visit https://groups.google.com/d/optout.

Reply via email to