Consulting

Results 1 to 3 of 3

Thread: VLOOKUP - works on 1 form but not on another

  1. #1
    VBAX Regular
    Joined
    Sep 2011
    Posts
    17
    Location

    VLOOKUP - works on 1 form but not on another

    Hello,
    I am trying to perform 2 different VLOOKUPs on 2 different user forms the first [vba]
    Private Sub Category_click()

    Dim Task As String



    Task = Category.Value

    Call tasksearch(Task)



    End Sub

    Sub tasksearch(Task)

    Dim DEFtask
    Dim DEFtask1
    Dim DEFtask2
    Dim DEFtask3
    Dim DEFtask4
    Dim DEFtask5
    Dim DEFtask6
    Dim DEFtask7
    Dim DEFtask8
    Dim DEFtask9



    Dim myrange
    Application.Workbooks.Open ("G:\EPFinanceLeigh\Suppliers\supplier selection tool data file.xls")



    Set myrange = Worksheets("Full_list").Range("A2:M145")

    DEFtask = Application.WorksheetFunction.VLookup(Task, myrange, 2, False)
    DEFtask1 = Application.WorksheetFunction.VLookup(Task, myrange, 3, False)
    DEFtask2 = Application.WorksheetFunction.VLookup(Task, myrange, 4, False)
    DEFtask3 = Application.WorksheetFunction.VLookup(Task, myrange, 5, False)
    DEFtask4 = Application.WorksheetFunction.VLookup(Task, myrange, 6, False)
    DEFtask5 = Application.WorksheetFunction.VLookup(Task, myrange, 7, False)
    DEFtask6 = Application.WorksheetFunction.VLookup(Task, myrange, 8, False)
    DEFtask7 = Application.WorksheetFunction.VLookup(Task, myrange, 9, False)
    DEFtask8 = Application.WorksheetFunction.VLookup(Task, myrange, 10, False)


    pref_supl_name.Value = DEFtask
    pref_addr_1.Value = DEFtask1
    pref_addr_2.Value = DEFtask2
    pref_addr_3.Value = DEFtask3
    pref_addr_4.Value = DEFtask4
    pref_post.Value = DEFtask5
    pref_name.Value = DEFtask6
    pref_tel.Value = DEFtask7
    pref_fax.Value = DEFtask8
    End Sub[/vba]

    Works fine however when I try to run a similar one on another form
    [vba]Private Sub Secondary_Click()

    Dim Task As String



    Task = transferred_category.Value

    Call tasksearch1(Task)



    End Sub

    Sub tasksearch1(Task)

    Dim SECtask
    Dim SECtask1
    Dim SECtask2
    Dim SECtask3
    Dim SECtask4
    Dim SECtask5
    Dim SECtask6
    Dim SECtask7
    Dim SECtask8
    Dim SECtask9



    Dim myrange1

    Application.Workbooks.Open ("G:\EPFinanceLeigh\Suppliers\supplier selection tool data file.xls")



    Set myrange1 = Worksheets("Sec_list").Range("A2:M145")

    SECtask = Application.WorksheetFunction.VLookup(Task, myrange1, 2, False)
    SECtask1 = Application.WorksheetFunction.VLookup(Task, myrange1, 3, False)
    SECtask2 = Application.WorksheetFunction.VLookup(Task, myrange1, 4, False)
    SECtask3 = Application.WorksheetFunction.VLookup(Task, myrange1, 5, False)
    SECtask4 = Application.WorksheetFunction.VLookup(Task, myrange1, 6, False)
    SECtask5 = Application.WorksheetFunction.VLookup(Task, myrange1, 7, False)
    SECtask6 = Application.WorksheetFunction.VLookup(Task, myrange1, 8, False)
    SECtask7 = Application.WorksheetFunction.VLookup(Task, myrange1, 9, False)
    SECtask8 = Application.WorksheetFunction.VLookup(Task, myrange1, 10, False)




    sec_supl_name.Value = SECtask
    sec_addr_1.Value = SECtask1
    sec_addr_2.Value = SECtask2
    sec_addr_3.Value = SECtask3
    sec_addr_4.Value = SECtask4
    sec_post.Value = SECtask5
    sec_name.Value = SECtask6
    sec_tel.Value = SECtask7
    sec_fax.Value = SECtask8

    End Sub[/vba]

    I get blank boxes, can anyone help me as to why?

    Dave

  2. #2
    Distinguished Lord of VBAX VBAX Grand Master Bob Phillips's Avatar
    Joined
    Apr 2005
    Posts
    25,453
    Location
    I don't see how it could work at all. You define the Task variable in one procedure, and use it in another, they are effectively different variables.

    Post the workbook.
    ____________________________________________
    Nihil simul inventum est et perfectum

    Abusus non tollit usum

    Last night I dreamed of a small consolation enjoyed only by the blind: Nobody knows the trouble I've not seen!
    James Thurber

  3. #3
    VBAX Regular
    Joined
    Sep 2011
    Posts
    17
    Location
    hello I have solved it by combining the 4 subroutines into 2 as follows -
    [VBA]
    Private Sub Category_click()

    Dim Task As String


    Task = Category.Value

    Call tasksearch(Task)



    End Sub

    Sub tasksearch(Task)

    Dim DEFtask
    Dim DEFtask1
    Dim DEFtask2
    Dim DEFtask3
    Dim DEFtask4
    Dim DEFtask5
    Dim DEFtask6
    Dim DEFtask7
    Dim DEFtask8
    Dim DEFtask9

    Dim SECtask
    Dim SECtask1
    Dim SECtask2
    Dim SECtask3
    Dim SECtask4
    Dim SECtask5
    Dim SECtask6
    Dim SECtask7
    Dim SECtask8
    Dim SECtask9





    Dim myrange
    Dim myrange1
    Application.Workbooks.Open ("G:\EPFinanceLeigh\Suppliers\supplier selection tool data file.xls")



    Set myrange = Worksheets("Full_list").Range("A2:M145")
    Set myrange1 = Worksheets("Sec_list").Range("A2:M145")

    DEFtask = Application.WorksheetFunction.VLookup(Task, myrange, 2, False)
    DEFtask1 = Application.WorksheetFunction.VLookup(Task, myrange, 3, False)
    DEFtask2 = Application.WorksheetFunction.VLookup(Task, myrange, 4, False)
    DEFtask3 = Application.WorksheetFunction.VLookup(Task, myrange, 5, False)
    DEFtask4 = Application.WorksheetFunction.VLookup(Task, myrange, 6, False)
    DEFtask5 = Application.WorksheetFunction.VLookup(Task, myrange, 7, False)
    DEFtask6 = Application.WorksheetFunction.VLookup(Task, myrange, 8, False)
    DEFtask7 = Application.WorksheetFunction.VLookup(Task, myrange, 9, False)
    DEFtask8 = Application.WorksheetFunction.VLookup(Task, myrange, 10, False)

    SECtask = Application.WorksheetFunction.VLookup(Task, myrange1, 2, False)
    SECtask1 = Application.WorksheetFunction.VLookup(Task, myrange1, 3, False)
    SECtask2 = Application.WorksheetFunction.VLookup(Task, myrange1, 4, False)
    SECtask3 = Application.WorksheetFunction.VLookup(Task, myrange1, 5, False)
    SECtask4 = Application.WorksheetFunction.VLookup(Task, myrange1, 6, False)
    SECtask5 = Application.WorksheetFunction.VLookup(Task, myrange1, 7, False)
    SECtask6 = Application.WorksheetFunction.VLookup(Task, myrange1, 8, False)
    SECtask7 = Application.WorksheetFunction.VLookup(Task, myrange1, 9, False)
    SECtask8 = Application.WorksheetFunction.VLookup(Task, myrange1, 10, False)


    pref_supl_name.Value = DEFtask
    pref_addr_1.Value = DEFtask1
    pref_addr_2.Value = DEFtask2
    pref_addr_3.Value = DEFtask3
    pref_addr_4.Value = DEFtask4
    pref_post.Value = DEFtask5
    pref_name.Value = DEFtask6
    pref_tel.Value = DEFtask7
    pref_fax.Value = DEFtask8

    Secondary.sec_supl_name.Value = SECtask
    Secondary.sec_addr_1.Value = SECtask1
    Secondary.sec_addr_2.Value = SECtask2
    Secondary.sec_addr_3.Value = SECtask3
    Secondary.sec_addr_4.Value = SECtask4
    Secondary.sec_post.Value = SECtask5
    Secondary.sec_name.Value = SECtask6
    Secondary.sec_tel.Value = SECtask7
    Secondary.sec_fax.Value = SECtask8

    End Sub
    [/VBA]
    Cheers

    Dave

Posting Permissions

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