It seems I've found a solution: whenever I update something that I want to see on the screen while vba is still running, I execute
Application.ScreenUpdating = True Application.Wait (Now + TimeValue("0:00:01")) Application.ScreenUpdating = False