There is a way to do this by using a flag, a macro, and a view. I put the below together with limited testing, but it worked fine in my sample project.
First, create a custom flag in MS Project, I've called mine "PredComplete" in Flag2.
Then we will write some VB code that will look at all tasks in the project. If the predecessors have been completed, then we will set Flag2 to "Yes". This will identify tasks where ALL their predecessors are done. NOTE: this doesn't care about the predecessor relationship, so if you use finish to finish a lot, this will not have the expected outcome.
Dim ProjTask As Task
Dim AllTasks As Tasks
Dim Pred As Task
Set AllTasks = ActiveProject.Tasks()
For Each ProjTask In AllTasks
Set Pred = Nothing
For Each Pred In ProjTask.PredecessorTasks
If Pred.PercentComplete <> "100" Then
ProjTask.Flag2 = "No"
ProjTask.Flag2 = "Yes"
Once that is done, create a button in your Quick View that is tied to the vb method you just created, in this case, activetasks ().
Finally, we will create a view that filters all the tasks that have not started (completed = 0%, can also use Actual Start = "NA") where all predecessor tasks are completed (Flag2 = "Yes").
After running the VB and applying your view, you should only see tasks where predecessors are complete, but have not been started yet. The way it's created, you will need to click the button every time you update your project. You can refine the VB to be a bit more efficient (ex. only include tasks that have not been completed), just in case your task list is thousands of lines long. That should start you off though!