Bonjour,
La méthode Workbook.Close ferme le fichier ! Assortie d'un paramètre SaveChanges, le fichier est enregistré si le paramètre est à True, non enregistré s'il est à False, cela évidemment sans message d'avertissement ! Je n'ai jamais vu cette commande dysfonctionner lorsqu'elle est correctement utilisée.
Définir la propriété Saved de l'objet Workbook à True (classeur non modifié) ou False (classeur modifié), aboutit aux mêmes résultats : le classeur ne fait pas l'objet d'une demande d'enregistrement lorsqu'il n'est pas modifié.
L'avantage de la première méthode est de combiner l'option dans une seule ligne de commande de fermeture.
Par ailleurs je conseille généralement de bannir l'utilisation d'objet Windows dès lors que l'on n'opère pas sur l'affichage écran en utilisant plusieurs fenêtres ou en fractionnant, etc., cas si l'objet Window a pleinement son rôle en matière d'affichage, cela peut être source de confusions diverses lors de l'intervention sur les divers composants d'Excel. Mieux vaut toujours utiliser les objets de base sur lesquels on veut avoir un effet : Workbook, Worksheet...
(A noter que les commandes utilisant Windows proviennent très souvent de code enregistré...)
Si donc la commande ne fonctionne pas, c'est que quelque chose l'empêche de s'exécuter ! Ce que l'on ne peut voir dans les citations tronquées de ton code dont on ne sait dans quel type de procédure il est placé.
Cordialement.