De ce que je lis sur le net, OpenStreetMap permet maxi 1 call/seconde (gratuit). Donc en l'appliquant sur tout un tableau on risque d'avoir des (mauvaises) surprises. Je ne sais pas si il y a d'autres API plus permissives.
La requete de @Baroute pourrait etre complétée en ne lui faisant rechercher que les lignes sans latitude/longitude par exemple. Mais le problème reste le meme : si + 1 ligne vide, on ne peut pas prévoir le comportement.
Sinon il y a VBA, mais bon les appels à des API moi je ne sais pas trop faire.
Une petite alternative amusante, puisque vous êtes sur 365 on peut aussi utiliser une formule combinant WEBSERVICE et les expressions regex. Entrez une adresse en A1 et en C1 mettez ceci :
=LET(_apiCall;SERVICEWEB("https://nominatim.openstreetmap.org/search?q=" & A1 & "&format=json&limit=1");
CNUM(REGEX.REMPLACER(REGEX.EXTRAIRE(_apiCall; """lat""\s*:\s*""([^""]+)"",""lon""\s*:\s*""([^""]+)""";2);"\.";"\,")))
Ce pourrait être une solution, il me semble que les formules ne sont pas réévaluées… Mais à l'ouverture du fichier je ne sais pas. Sinon il faudrait mettre le calcul du classeur en manuel, au moins à l'ouverture.