Bonjour à tous,
2/ Comment fermer un fichier excel si il est ouvert mais que ça ne fasse pas beuguer le programme si il ne l'est pas?
Merci beaucoup
Bonjour à tous,
2/ Comment fermer un fichier excel si il est ouvert mais que ça ne fasse pas beuguer le programme si il ne l'est pas?
Merci beaucoup
Salut Avinetor et le forumA+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Dim WB As Workbook Dim Flg As Boolean For Each WB In Workbooks If WB.Name = "Classeur.xls" Then Flg = True exit for end if Next WB If Flg Then WB.Close
Bonjour,
Une autre solution plus simple mais beaucoup moins élégante et peut être moins robuste
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 On Error Resume Next Workbooks("Classeur1.xls").Close On Error GoTo 0
Bonjour,
Gorfael, 2 remarques sur ton code, en toute naîveté :
1) Pourquoi fais tu le .close en dehors de la boucle et pas dedans directement ?
2) J'aurais personnelement aussi positionné l'attribut .saved à True avant le close, mais il est vrai que ce n'est pas demandé.
Désolé. le vendredi j'ai souvent des remarques stupides.
Excellent week-end à toi.
Salut Godzestla et le forumC'est plutôt pour décrire un principe de fonctionnement dans une macro, pour effectuer un traitement sur un objet dont je n'ai pas d'autre moyen de vérifier l'existence.Pourquoi fais tu le .close en dehors de la boucle et pas dedans directement ?
Il est vai qu'on peut faire le traitement directement, mais ça permet un traitement en cas d'absence, que tu ne peux effectuer directement, dans la boucle, à travers le if Flg.... Else .... endif, ce qui n'est pas demandé.
Et puis à minuit passé...Oui, c'est une possibilité, mais si tu veux conserver la date de la dernière modif et pas de la dernière consultation...J'aurais personnelement aussi positionné l'attribut .saved à True avant le close, mais il est vrai que ce n'est pas demandé.Moi, c'est sans distinction de jourDésolé. le vendredi j'ai souvent des remarques stupides.
A+
Merci à tous,
Je n'ai essayé que la première solution qui fonctionne très bien
Cordialement
Avinetor
Partager