Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 merinos,

Bien vu mais le nom s'affiche bien.
Par contre, l'extension étant entre guillemets, on peut effectivement afficher n'importe quoi et donc je me demande ce que la variable récupère exactement.
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…