reference a cell with a variable row in another workbook

jackohl

New Member
Joined
Jun 7, 2019
Messages
2
I am new at vba.
I need to locate the row number of certain employees in every workbooks
Employee names are sorted differently and are in another column for some workbooks.
Workbook names are located in column AC populated using dir().

From the code below, you will notice that $AC14 is static.
I want to replace $AC14 with something like "AC" & x + 14.
However, I am at a lost on how to accomplish this.
Any suggestion will be highly appreciated.

' $B$7 = employee name from drop down list
' $AA$7 = sheet name from drop down list

Private Sub GetEmployeeRow()
x = 0
Do While Range("AC" & x + 14).Value <> ""
If Left(Range("AC" & x + 14), 1) = "2" Then
Range("AA" & x + 14).Formula = "=MATCH($B$7,INDIRECT(""'[""&$AC14&""]""&$AA$7&""'!B:B""),0)"
End If
If Left(Range("AC" & x + 14), 1) = "C" Then
Range("AA" & x + 14).Formula = "=MATCH($B$7,INDIRECT(""'[""&$AC14&""]""&$AA$7&""'!C:C""),0)"
End If
' criteria for other workbooks
x = x + 1
Loop
End Sub

Thank you in advance.
 

Excel Facts

Round to nearest half hour?
Use =MROUND(A2,"0:30") to round to nearest half hour. Use =CEILING(A2,"0:30") to round to next half hour.
Try this


Code:
Private Sub GetEmployeeRow()
    x = 0
    Do While Range("AC" & x + 14).Value <> ""
        If Left(Range("AC" & x + 14), 1) = "2" Then
            Range("AA" & x + 14).Formula = "=MATCH($B$7,INDIRECT(""'[""&$AC" & x + 14 & "&""]""&$AA$7&""'!B:B""),0)"
        End If
        If Left(Range("AC" & x + 14), 1) = "C" Then
            Range("AA" & x + 14).Formula = "=MATCH($B$7,INDIRECT(""'[""&$AC" & x + 14 & "&""]""&$AA$7&""'!C:C""),0)"
        End If
        ' criteria for other workbooks
        x = x + 1
    Loop
End Sub
 
Upvote 0
I am new at vba.
I need to locate the row number of certain employees in every workbooks
Employee names are sorted differently and are in another column for some workbooks.
Workbook names are located in column AC populated using dir().

From the code below, you will notice that $AC14 is static.
I want to replace $AC14 with something like "AC" & x + 14.
However, I am at a lost on how to accomplish this.
Any suggestion will be highly appreciated.

' $B$7 = employee name from drop down list
' $AA$7 = sheet name from drop down list

Private Sub GetEmployeeRow()
x = 0
Do While Range("AC" & x + 14).Value <> ""
If Left(Range("AC" & x + 14), 1) = "2" Then
Range("AA" & x + 14).Formula = "=MATCH($B$7,INDIRECT(""'[""&$AC14&""]""&$AA$7&""'!B:B""),0)"
End If
If Left(Range("AC" & x + 14), 1) = "C" Then
Range("AA" & x + 14).Formula = "=MATCH($B$7,INDIRECT(""'[""&$AC14&""]""&$AA$7&""'!C:C""),0)"
End If
' criteria for other workbooks
x = x + 1
Loop
End Sub

Thank you in advance.

How about, in a single formula
Code:
Private Sub GetEmployeeRow1()
 With Range("AA14:AA" & Range("AC" & Rows.Count).End(xlUp).Row)
  .Formula = "=MATCH($B$7,INDIRECT(""'[""&$AC" & x + 14 & "&""]""&$AA$7&""'!"" & " & _
           "IF(LEFT(AC14,1)=""2"",""B:B"",IF(LEFT(AC14,1)=""C"",""C:C""))),0)"
 End With
End Sub
 
Upvote 0
Sir Dante Amor,

Your first code works. It meets my current needs.
Thank you very much.
I'll be analyzing your second code as it needs modification in order to accommodate the criteria for other workbooks.
Again, thank you very much.
 
Upvote 0
I'm glad to help you. Thanks for the feedback.
 
Upvote 0

Forum statistics

Threads
1,223,894
Messages
6,175,252
Members
452,623
Latest member
Techenthusiast

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top