Bonjour à tous,
Après plusieurs recherches et essais je n'ai pas réussi à obtenir ce que je souhaitais.
Ma macro me sert à importer des classeurs dans un autre classeur (où est situé la macro) via la commande: "Application.GetOpenFilename".
Cela donne le bout de code suivant:
J'utilise donc la sélection multiple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim OuvrirFichiers As Variant OuvrirFichiers = Application.GetOpenFilename(, , , , True) For y = 1 To UBound(OuvrirFichiers) Workbooks.Open OuvrirFichiers(y) Sheets.Select Sheets.Copy after:=Workbooks("OutilVBA.xls").Sheets(1)
Ma problématique: fermer, une fois copié, les classeurs ouverts avec Application.GetOpenFilename.
2 techniques pour cela qui ne me conviennent pas:
- utiliser le nom des classeurs pour les fermer workbooks.close (mais je ne suis pas à l'abris que les classeurs que je souhaite importer change de nom...)
- fermer tous les classeurs sauf celui qui contient la macro (problème pour l'utilisateur s'il travail avec d'autres classeurs qui ne souhaite pas fermer)
La solution serait de nommer temporairement les classeurs ouverts puis utiliser ce "nom temporaire" pour les fermer via workbooks.close.... est ce possible ? ou avez vous d'autres solutions ?
merci pour votre aide,
raphaël
Partager