''Enregistrer sous'' tous mes classeurs ouverts

Signaler
Messages postés
8
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
9 juin 2008
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
Bsr,

Voila, j'ai une cinquantaine de classeurs ouverts qui ne sont pas enregistrés

Je souhaite créer une macro
qui me permette d'enregistrer automatiquement ces 50 classeurs dans le dossier (C:\Users\Alex\Desktop\Nouveau dossier) en leur donnant à le nom du 1er onglet (à vrai dire chaque classeur ne comporte qu'un seul onglet !)

Pouvez-vous m'aider ?

par avance MERCI

2 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
ActiveWorkBook.SaveAs "C:\Users\Alex\Desktop\Nouveau dossier" & activesheet.name & ".xls"

Tu mets ça dans une boucle qui lit tous les classeurs ouverts en utilisant la collection Windows

For Each Classeur in Windows
   Classeur.Activate
   Classeur.SaveAs "C:\Users\Alex\Desktop\Nouveau dossier" & activesheet.name & ".xls"
   Classeur.close  ' si tu veux les fermer au fur et à mesure
Next

Je n'ai pas testé, mais ça devrait fonctionner...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut à tous.

Moi je passerais par la collection WorkBooks de l'objet Application.
Soit:

Dim WBook As Workbook
   For Each WBook In Application.Workbooks
       'SI le fichier existe déjà il te demandera si tu veux le remplacer
       Call WBook.SaveAs("C:\Users\Alex\Desktop\Nouveau dossier\" & WBook.Sheets(1).Name & ".xls")
       Call WBook.Close
   Next
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée