You can still run it the way it was originally, I have added some error handling in the below to check if the call placement spreadsheet is open:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wb As Workbook
Dim YEE As Workbook
Dim ws As Worksheet
Dim uCols As Integer
Dim sMnth As Date
Dim dRng As Range, cRng As Range
Application.EnableEvents = False
For Each wb In Workbooks
If wb.Name Like "*YEE*call placement*" Then
Set YEE = wb
Exit For
End If
Next wb
If YEE Is Nothing Then
Application.EnableEvents = True
MsgBox "Call placement spreadsheet not open"
Exit Sub
End If
If Target.Address = "$B$4" Then
For Each ws In YEE.Worksheets
If ws.Name Like "YEE*MU*" Then
uCols = ws.UsedRange.Columns.Count
sMnth = ws.Range("G1").Value
Set dRng = ws.Range("F:F").Find(Target.Value, , , xlWhole)
Range("B10:Y10").ClearContents
Set cRng = ws.Range(ws.Cells(dRng.Row, dRng.Column + 1), ws.Cells(dRng.Row, uCols - 1))
Rows(9).Find(sMnth, , , xlWhole).Offset(1).Resize(, cRng.Columns.Count) = cRng.Value
Exit For
End If
Next ws
End If
Application.EnableEvents = True
End Sub
As for other subs triggering your worksheet event, you can disable events in those macro's using the below method. It will stop them from triggering events when they make changes to the worksheet:
Sub test()
Application.EnableEvents = False
' Your code here
' Your code here
' Your code here
Application.EnableEvents = True
End Sub
For each of your other subs that interact with the sheet with the event code you would add the false line from above test macro, run all of your code, then use the true line from above test macro.