This will work for you, but you will have to excuse my VBA programming, still
getting used to it.
My setup:
Account list is on tab called Data, starting in row 2, with column A being
Account NAME, and column B being Account NUMBER.
Cell D1 on Data tab: =COUNTA($A$2:$A$1000) then defined as NuAcct
Cell E1 on Data tab: ="$A$2:$B$"&NuAcct+1
Cell F1 on Data tab: ="$B$2:$B$"&NuAcct+1
Need to define a list, Insert-->Name--Define...
Name in Workbook: AccountList
Refers to: =OFFSET(Data!$A$2,0,0,NuAcct,1)
Next, on your sheet that will have the drop down menu.
Assuming cell A2 has the drop down list
Click in A2, go to Data-->Validation.
Allow: List
Source data: =AccountList
Right click on your tab name, and choose View Code.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Look1 As Range
Dim Look2 As Variant
Dim Look3 As Range
Dim TblLkUp As Range
Set Look1 = ActiveSheet.Range("$A$2")
Set TblLkUp = Worksheets("Data").Range(Worksheets("Data").Range("$E$1"))
Set Look3 = Worksheets("Data").Range(Worksheets("Data").Range("$F$1"))
If Application.WorksheetFunction.CountIf(Look3, Look1) = 0 Then
Look2 = Application.WorksheetFunction.VLookup(Look1, TblLkUp, 2, False)
If Target.Address = "$A$2" Then Target = Look2
End If
End Sub
I am quite sure another VBA user could clean up the code, but it does work.
Hope this helps!