Results 1 to 7 of 7

Speed up Script that lookups up another workbook

Threaded View

  1. #1
    Registered User
    Join Date
    03-01-2007
    Posts
    37

    Speed up Script that lookups up another workbook

    Hi all, Im fairly new to this and i have created the code below, which looks up a workbook (backlog.xls) using 3 differnt criteria from (Order Template.xls).

    The Backlog file would normaly have over 12000 row and the Order file would normaly have in a max of 500 rows.

    When I run the code below it takes an eternity to run!! I have attached the files below in hope that someone can give me a quicker way!

    Thanks in advance



    Sub Macro1()
        Range("H3").Select
        
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C8)*(Backlog.xls!R2C3:R65000C3=R2C8)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
            ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C9)*(Backlog.xls!R2C3:R65000C3=R2C9)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C10)*(Backlog.xls!R2C3:R65000C3=R2C10)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C11)*(Backlog.xls!R2C3:R65000C3=R2C11)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C12)*(Backlog.xls!R2C3:R65000C3=R2C12)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C13)*(Backlog.xls!R2C3:R65000C3=R2C13)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C14)*(Backlog.xls!R2C3:R65000C3=R2C14)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C15)*(Backlog.xls!R2C3:R65000C3=R2C15)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C16)*(Backlog.xls!R2C3:R65000C3=R2C16)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C17)*(Backlog.xls!R2C3:R65000C3=R2C17)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C18)*(Backlog.xls!R2C3:R65000C3=R2C18)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = "=SUM(RC[-11]:RC[-1])"
        ActiveCell.Offset(0, 2).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C21)*(Backlog.xls!R2C3:R65000C3=R2C21)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C22)*(Backlog.xls!R2C3:R65000C3=R2C22)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C23)*(Backlog.xls!R2C3:R65000C3=R2C23)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C24)*(Backlog.xls!R2C3:R65000C3=R2C24)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C25)*(Backlog.xls!R2C3:R65000C3=R2C25)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C26)*(Backlog.xls!R2C3:R65000C3=R2C26)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C27)*(Backlog.xls!R2C3:R65000C3=R2C27)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C28)*(Backlog.xls!R2C3:R65000C3=R2C28)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C29)*(Backlog.xls!R2C3:R65000C3=R2C29)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C30)*(Backlog.xls!R2C3:R65000C3=R2C30)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((Backlog.xls!R2C1:R65000C1=RC3)*(Backlog.xls!R2C2:R65000C2=R1C31)*(Backlog.xls!R2C3:R65000C3=R2C31)*(Backlog.xls!R2C4:R65000C4))"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = "=SUM(RC[-11]:RC[-1])"
        Range("H3").Select
        
        '==============
        Dim mystring
    ActiveCell.Offset(1, -1).Select
    
    mystring = Selection
    'ActiveCell.Offset(0, 1).Select
    'mystring = Selection
    
    
    Do Until mystring = ""
    
    If mystring <> "" Then
    ActiveCell.Offset(0, 1).Select
        Range("CRange").Copy
    '    Selection.Copy
    ActiveSheet.Paste
    Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    ActiveCell.Offset(1, -1).Select
    mystring = Selection
    'ActiveCell.Offset(0, -3).Select
    
    
    Else
    
    End If
    
    Loop
    Range("CRange").Select
    Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    
    Range("a1").Select
    
      
        
        
    End Sub
    Attached Files Attached Files

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1