Je viens de comprendre en faisant des recherches sur le sujet.
En fait, quand je renomme une première fois le fichier, ça fonctionne car x existe (ancien nom du fichier) et y le remplace (nouveau nom du fichier).
Lors d'une deuxième exécution, x n'existe plus car je n'ai pas déclaré le nouveau nom pour l'ancien dans la base.
Il faut donc que je trouve une solution pour actualisé x (colonne A)
EDIT : pour les intéressé :
Sub modifieNom()
For Each c In Range([A2], [A2].End(xlDown))
If c.Offset(0, 2) <> "" Then
x = [G2].Value & "\" & c.Value
y = [G2].Value & "\" & c.Offset(0, 2).Value
Name x As y
c.Value = c.Offset(0, 2).Value
End If
Next c
MsgBox "Terminé"
End Sub