Crie um código VBA para automatizar o agendamento de tarefas utilizando informações de entrada de uma planilha do Excel (nome da tarefa, data de início, duração em dias com possibilidade de valores decimais, prazo, prioridade numérica de 1 a 6 e estado da tarefa) e gerando os outputs (data de início agendada, data final agendada, pessoa atribuída e estado atualizado da tarefa). As tarefas devem respeitar dias úteis, feriados em Portugal e as férias dos funcionários, que serão fornecidas em outra planilha do Excel. Não permitir a realização de tarefas simultâneas por uma pessoa e atribuir as tarefas às cinco pessoas disponíveis (André, Daniel, Sofia, Marcos e Patricia) de forma eficiente, considerando os prazos, prioridades, equilíbrio na carga de trabalho e carga de trabalho atual. Tarefas finalizadas e em curso não devem ser reagendadas, mas devem ser consideradas para evitar atribuições simultâneas. Tarefas agendadas podem ser recalculadas para otimizar o planejamento, mas as datas devem ser mantidas sempre que possível. Tarefas pendentes devem ser calculadas e o estado atualizado para "agendadas" após o cálculo. Se a data final agendada for superior à data do prazo, a célula da data final agendada deve ser formatada com a cor vermelha.