Bonjour.
Si la macro, éventuellement d'un autre classeur, tourne pour le classeur actif :
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.)