#In this code I want to make workbook speaker.xlsx dynamic such that this code should work even if the workbook name is changed.
Sub test()
Dim vendor As Variant, item As Variant
Dim n As Variant, n1 As Variant, cat As Variant, cat1 As Variant
Dim n2 As Variant, n3 As Variant, data As Variant, data1 As Variant
n = Workbooks("speaker.xlsx").Sheets("speaker").Cells(Rows.Count, 1).End(xlUp).Row
n1 = Workbooks("LPD_Data.xlsx").Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
cat = Workbooks("speaker.xlsx").Sheets("speaker").Range("A2").Value
Workbooks("speaker.xlsx").Sheets.Add.Name = "Output"
For i = 2 To n1
cat1 = Workbooks("LPD_Data.xlsx").Sheets("Sheet1").Range("A" & i).Value
If cat = cat1 Then
Exit For
End If
Next i
n2 = Workbooks("LPD_Data.xlsx").Sheets("Sheet1").Cells(i, Columns.Count).End(xlToLeft).Column
x = 4
For j = 2 To n2
x = x + 1
Workbooks("speaker.xlsx").Sheets("Output").Cells(1, x).Value = Workbooks("LPD_Data.xlsx").Sheets("Sheet1").Cells(i, j).Value
Next j
n3 = Workbooks("speaker.xlsx").Sheets("speaker").Cells(1, Columns.Count).End(xlToLeft).Column
n2 = n2 + 3
Workbooks("speaker.xlsx").Sheets("Output").Range("A1").Value = "Category"
Workbooks("speaker.xlsx").Sheets("Output").Range("B1").Value = "Item"
Workbooks("speaker.xlsx").Sheets("Output").Range("C1").Value = "Vendor(s)"
Workbooks("speaker.xlsx").Sheets("Output").Range("C1").Value = "Model"
Workbooks("speaker.xlsx").Sheets("Output").Range("C1").Value = "Barcode"
For k = 1 To n2
data = Workbooks("speaker.xlsx").Sheets("Output").Cells(1, k).Value
data = Trim(data)
For m = 1 To n3
data1 = Workbooks("speaker.xlsx").Sheets("speaker").Cells(1, m).Value
data1 = Trim(data1)
If data = data1 Then
Workbooks("speaker.xlsx").Sheets("speaker").Activate
Workbooks("speaker.xlsx").Sheets("speaker").Cells(2, m).Select
Workbooks("speaker.xlsx").Sheets("speaker").Range(Selection, Selection.End(xlDown)).Copy
Workbooks("speaker.xlsx").Sheets("Output").Activate
Workbooks("speaker.xlsx").Sheets("Output").Cells(2, k).Select
ActiveSheet.Paste
Exit For
End If
Next m
Next k
End Sub