:salut: à tous !
Je cherche à connaître le code VBA pour fermer un classeur Excel.
J'ai essayé la méthode Workbooks.Close mais Excel m'affiche "Propriété Incorrect".
Quelqu'un peut-il m'aider please ? :mrgreen:
Version imprimable
:salut: à tous !
Je cherche à connaître le code VBA pour fermer un classeur Excel.
J'ai essayé la méthode Workbooks.Close mais Excel m'affiche "Propriété Incorrect".
Quelqu'un peut-il m'aider please ? :mrgreen:
Bonjour,
Que donnerait :Code:
1
2 ' Nom du classeur à modifier Workbooks("Nom de ton classeur.XLS").Close SaveChanges:=True
message d'erreur suivant :" L'indice n'appartient pas à la sélection"
Tu as bien mis le ".xls " ou xlm si c'est un xlm ? En gros, l’extension ou l'indice est importante.
Par ailleurs tu souhaites fermer le classeur ou excel tout entier ?
Tu peux éventuellement tester :Code:
1
2'Fermer le classeur actif ActiveWorkbook.Close
Code:
1
2'Fermer excel Application.Quit
application.quit fonctionne bien mais il m'est impossible d'ouvrir mes classeurs par la suite. Est-ce normal ?
Application.Quit ferme complètement Excel, il faut le relancer (ou redémarrer le PC) pour rouvrir des classeurs. C'est donc normal.
Tu peux essayer ce code là :
Code:
1
2 Application.Quit 'quit excel ActiveWorkbook.Close SaveChanges:=True 'ferme le fichier actif
J'ai relancé l'ordinateur et Excel. Ma feuille ne s'ouvre plus :/
Tu avais sauvegardé ton fichier ? Tu as un message d'erreur à la place de l'ouverture ?
Et lorsque tu essayes d'ouvrir un autre classeur ?
J'ai bien sauvegardé mon fichier et j'ai rajouté une sauvegarde en plus au cas où. C'est le seul fichier que je ne peux pas ouvrir
Avec clique droit / propriétés, vérifies qu'il soit bien ouvrable avec Excel. C'est étrange, ce code ne m'a jamais fait ça sur aucun fichier.
Il s'ouvre bien avec Excel ...
Bonjour
Pour:
C'est normal que cela ne fonctionne pas car "Workbooks" représente la collection des classeurs disponibles dans l'application Excel.Code:Workbooks.Close
Il faut lui indiquer soit le nom de ton fichier, soit un indice (cf. l'aide VBE pour plus d'info).
Dans ton cas, et comme Stanler te l'indique, il faut vérifier le nom de ton fichier et utiliser la méthode qu'il t'a indiqué:
avec "Nom de ton classeur.xls" correspondant au nom de ton fichier.Code:Workbooks("Nom de ton classeur.xls").Close
Pour l'enregistrer, soit tu fais un ".save" soit tu utilises l'option "SaveChanges:=True" lors de la fermeture (encore une fois cf. l'aide VBE).
En complément,
Tu peux utiliser l'option "Application.DisplayAlerts" pour inhibe le gestionnaire d'alerte (message lors de la fermeture)
Cordialement.Code:
1
2
3 Application.DisplayAlerts = False Workbooks.Close Application.DisplayAlerts = True
Merci pour vos réponses cela fonctionne après quelques manip' :mrgreen:
bonjour,
apprends à utiliser les variables objet d'Excel!
Code:
1
2
3
4
5
6
7 Dim Wb As Workbook, Sh As Worksheet, R As Range Set Wb = Application.Workbooks.Open("monfichier.xlsx") Set Sh = Wb.Sheets(2) Set R = sh.UsedRange Wb.Save Wb.Close False Set R = Nothing: set Sh = Nothing: Set Wb = Nothing