Три способа, которыми я мог бы предложить вам подойти к этому:
1. Используйте файл, чтобы сообщить Python, что VBA завершил свою работу
Для этого ваш VBA-скрипт должен создать пустой файл (может быть .xlsx)
import os.path
import time
"""
First block of code here
"""
while os.path.isfile('signal.xlsx') == False:
time.sleep(10)
"""
Second block of code here
"""
2. Подсчитайте, сколько времени потребуется вашему скрипту VBA для запуска
Если ваш скрипт меняет некоторые аспекты рабочего листа, выполните прогон с более короткой версией, подсчитайте, сколько времени это займет, а затем умножьте время выполнения по всем итерациям, которые ему придется пройти.
Дайте Python подождать столько секунд, прежде чем запускать следующие блоки.
import time
time.sleep(seconds)
3. Используйте Python Scheduler
Вы также можете использовать проект Schedule для запуска скрипта в определенное время, если вы считаете, что безопаснее играть его, например, вечером.
Я бы отослал вас к https://pypi.org/project/schedule/, поскольку у него очень простой пример использования.