Re,
Dans votre fichier, vous utilisez dans l'appel des fonctions une plage beaucoup trop grande par rapport aux lignes de données réelles. Ce qui explique la durée exagérément longue d'exécution des deux macros.
Sans toucher aux codes, il faut utiliser la plage la plus petite possible. Pour cela, j'ai créé un nom dynamique qui désigne la plus petite plage d'entrée.
Ce nom dynamique est : tabloAladin
Sa définition est : =DECALER(Aladin!$A$2;0;0;NBVAL(Aladin!$A:$A)-1;3)
Pour visualiser la définition de ce nom, utilisez le menu Formules / Gestionnaire de noms.
Ou bien tapez la touche de fonction F5, dans la zone Référence tapez tabloAladin puis cliquez sur OK. Cela sélectionne la plage correspondant à tabloAladin.
Voir fichier joint.