XL 2013 Nom de classeur en variable

Romain31

XLDnaute Occasionnel
Bonjour à tous,

J'utilise ce code pour fermer mon classeur sans l'enregistrer
Workbooks("test.xlsm").Close Savechanges:=False
pas de souci

Si un utilsateur modifie son nom, cela ne fonctionne plus
Mon idée est de déclarer le nom du classeur en variable.

Je teste déjà avec une msgbox - ok
Sub nom()
Dim NomFic As String
NomFic = ThisWorkbook.Name & ".xlm"
MsgBox NomFic
End Sub

Mais je bloque complètement pour indiquer NomFic dans ma ligne en remplacement du nom actuel
Workbooks("test.xlsm").Close Savechanges:=False

Un grand merci et bon we
 

Romain31

XLDnaute Occasionnel
Bonjour Dranreb,
J'ai testé tant de choses...dont ActiveWorkbook
Mais les plus simples sont souvent les plus efficace.
Et effectivement, votre proposition fonctionne.
Par contre, par curiosité intellectuelle, j'aurais bien aimé utiliser une variable.
En tout cas, un grand merci à vous
 

Dranreb

XLDnaute Barbatruc
Vous pouvez déclarez des variable As Workbook, vous savez. C'est toujours préférable de noter par des Set les objets eux mêmes dans des variables objets plutôt que les noms qu'ils portent dans des collections, ce qui oblige bêtement, pour s'en servir, à les reconstituer par consultations de celles ci. Mais c'est inutile pour le classeur actif puisqu'il y a ActiveWorkbook et pour celui dont le projet VBA porte ce code là puisqu'il y a ThisWorkbook.
 

Discussions similaires

Statistiques des forums

Discussions
312 279
Messages
2 086 728
Membres
103 380
dernier inscrit
prolofief