Je ré-expose mon message édité de l'autre fil :
Si la macro tourne pour le classeur actif, et même si elle est dans un autre classeur :
myDir = Dir(ActiveWorkbook.Worksheets("Liste").Range("A31").Value, vbDirectory)
myDir = Dir([Liste!A31].Value, vbDirectory)
Si la macro tourne dans un module du classeur, même si ce n'est pas le classeur actif :
myDir = Dir(Thisworkbook.Worksheets("Liste").Range("A31").Value, vbDirectory)
myDir = Dir(ValeurDeCodeName.[A31].Value, vbDirectory)
(ValeurDeCodeName : Nom de l'objet Worksheet, de la rubrique "Microsoft Excel Objets" dans l'explorateur de projets, représentant la feuille nommée "Liste" du coté d'Excel.
Pour information ce nom est restitué par sa propriété CodeName, de type String en lecture seule.)