[VBA] Fermer un classeur nom complet inconnu

Bonjour à tous!

J'ai une petite question concernant une manip qui à l'air toute bête mais pour laquelle je n'arrive pas à trouver la solution.

Dans le cadre d'une macro qui manipule différents classeurs, à un moment donné j'ouvre un classeur supplémentaire (Workbooks.add) afin d'y effectuer quelques calculs ponctuels qui n'ont besoin d'être enregistrés nulle part

En gros :

Au cours de ma macro, j'ouvre un nouveau classeur Workbooks.add

Je fais mes manips dessus (tri de données)

Je récupère ces données une fois le tri fait sur mon classeur principal

Je veux fermer le fichier que j'ai ouvert.

Ce fichier s'appelle Classeur1.xslx, ou Classeur2.xlsx, ou Classeur3.xlsx, etc... le nom n'est pas défini car ça dépend si j'ai déjà un "ClasseurN.xlsx" d'ouvert

Bref ma question est la suivante : comment fermer ce "ClasseurN.xlsx en ne connaissant pas son nom complet ?

j'ai testé Workbooks("Classeur" & "*.xlsx").Close False mais ça ne fonctionne pas.

Alors je fais appel à votre grand savoir en la matière

Je vous joins un fichier exemple.

Ce que je cherche c'est donc à refermer ce "nouveau classeur" que je viens d'ouvrir.

Merci d'avance !

Bonjour,

Si tu identifies ton classeur temporaire avec une variable ( Dim ClasseurTemp As Workbook) ... tu pourras ensuite le fermer ...

Bonjour,

Sauf erreur de compréhension de ma part, si c'est l'onglet de calcul qui est ouvert,

ActiveWorkbook.Close

Ca dépend de la manière dont tu copie/colle tes données (Comme l'a dit James007, ça dépendra de la manière dont tu fait ton déplacement de données. Si c'est copié à destination de ... tu restes sur le même onglet, si par contre c'est sélectionner telle feuille copier, sélectionner classeur origine, feuille1, Coller ... il te faut mettre le nom du classeur dans une variable et l'appeler pour le fermer)

PS: Je n'avais pas vu le fichier joint

Salut James !

C'est si simple avec toi !

Alors tout simplement il me suffisait de mettre un

Set ClasseurTemp = Workbooks.Add

et de finir en

ClasseurTemp.Close False

Et hop, une manip en moins pour fermer ces fichus "ClasseurN" à la mano

Mille merci !

Salut Timothe URVOY !

Merci pour ta réponse. je garde celle de james, tout simplement parce qu'elle me permet en plus d'identifier clairement mon classeur temporaire. Je préfère éviter autant que possible d'agir sur des "ActiveWokbook" car c'est toujours un peu dangereux, pour peu que dans la manip tu actives par erreur un autre classeur, ton résultat peut s'avérer, au mieux, très différent de celui escompté, et au pire carrément catastrophique en touchant à des données que tu ne souhaitas pas modifier;

merci beaucoup à vous deux !

Salut Gaz0Line ...

Content que tu aies pu trouver la solution à ton problème ...

Merci pour tes remerciements ...

Rechercher des sujets similaires à "vba fermer classeur nom complet inconnu"