VBA - Excel 2010 - Macro fermeture de classeurs

Bonsoir au forum

Une petite question basique de novice.

j'ai enregistré une macro pour fermer tous les classeurs ouverts.

Comment la modifier pour que si un des classeurs est déjà fermé il passe au suivant et ne génère pas de code d'erreur?

Sub Fermeture()
'
' Fermeture Macro
' Fermer tous les classeurs
'

'
    Windows("Classeur_1.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("Classeur_2.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("Classeur_3.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("Classeur_4.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("Classeur_5.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("Sommaire.xlsm").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close

End Sub

Un grand merci pour vos explications

Bonjour

Sauvegarde et fermeture (sauf celui de la macro) de tous les classeurs ouverts

Sub Fermeture()
Dim Wbk As Workbook

  For Each Wbk In Workbooks
    If Wbk.Name <> ThisWorkbook.Name Then
      Wbk.Save
      Wbk.Close
    End If
  Next Wbk
End Sub

Bonsoir Banzai64 et merci de ta réponse

Ça marche impec.

Pour fermer aussi celui de la macro. C'est possible?

j'ai rajouter ceci. Mais c'est pas très "joli" je pense.

Sub FermetureTousClasseurs()
Dim Wbk As Workbook

  For Each Wbk In Workbooks
    If Wbk.Name <> ThisWorkbook.Name Then
      Wbk.Save
      Wbk.Close
    End If
  Next Wbk
    Windows("Sommaire.xlsm").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close

End Sub

Salut le forum

Remplace

    Windows("Sommaire.xlsm").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close

Par l'option désirée

ThisWorkbook.Close False 
' ferme le classeur sans enregistrement

ThisWorkbook.Close True 
' ferme le classeur avec  enregistrement

ThisWorkbook.Close 
' ferme le classeur et laisse l'utilisateur le choix de l'enregistrer

Tu peux faire la même chose avec le bout de code

     Wbk.Save
      Wbk.Close

Wbk.Close True

Mytå

Bonsoir et merci Mytå pour ta réponse vraiment rapide

surtout à cette heure tardive

En effet c'est plus "joli".

je vais pouvoir me coucher l'esprit libre.

Encore merci et bonne nuit. (Euh non pour toi il doit doit être à peut près 21h)

Rechercher des sujets similaires à "vba 2010 macro fermeture classeurs"