Try this
Code:Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "C2" Then Select Case InStr(1, "|" & Join(Application.Transpose(Range("E1:E150").Value2), "|") & "|", "|" & Range("C2").Value2 & "|") > 0 Case True Open_Doc Case Else 'Do something / nothing End Select End If End Sub Sub Open_Doc() Dim var As Variant Dim wbk As Workbook Dim varWbkList As Variant varWbkList = Application.Transpose(Range("E1:E150").Value2) Application.ScreenUpdating = False For Each var In varWbkList On Error Resume Next Set wbk = Workbooks(CStr(var)) Err.Clear: On Error GoTo 0: On Error GoTo -1 If Not wbk Is Nothing Then wbk.Close True 'Use True/False to save changes or not Set wbk = Nothing End If Next var Workbooks.Open Sheets("Sheet1").Range("B2").Value & Sheets("Sheet1").Range("C2").Value Workbooks("Main.xls").Activate Application.ScreenUpdating = True End Sub




Reply With Quote
Bookmarks