Ok, je n'avais pas bien compris.
Je n'ai pas de solution élégante mais j'en ai deux qui fonctionnent :
1. mettre un bouton pour ne la lancer que quand tu veux
ou 2. j'utiliserais un code de ce genre :
Sub test()
Dim datenow As Date
Dim ddl As Range 'date de dernier lancement de la macro
datenow = Format(Now(), "dd/mm/yy")
Set ddl = Range("B2")
If ddl <> datenow And Weekday(Now()) = vbFriday Then ' si date du dernier lancement <> date du jour et date du jour = vendredi, effectuer la macro
'... macro
ddl.Value = datenow 'et changer la date du dernier lancement
Else 'rien
End If
End Sub
Comme ça : si on est vendredi et qu'on n'a pas lancé la macro ce jour: elle se lance, puis écrit la date du jour en cellule B2.
Si la macro a déjà été lancée aujourd'hui, ddl=datenow donc ta macro ne se lance pas.
Ensuite, soit tu fais une petite mise en forme en mode "dernière macro éxecutée le :" ou alors tu écris en blanc si tu veux vraiment le cacher.
Peut-être que les pros du forum auront quelque chose de plus propre à proposer