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

Macro - Enregistrer chaque feuille dans un fichier.

  • Initiateur de la discussion Initiateur de la discussion jlm94
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jlm94

XLDnaute Junior
Bonjour,
J'ai un classeur contenant une 100e de feuilles et actuellement il y a déjà une Macro qui me permets d'enregistrer automatiquement chaque feuille dans un fichier indépendant au format PDF.
J'aurais souhaité pouvoir avoir la même macro mais pour un enregistrement en XLSX.
J'ai bien tenté de modifier la macro existante mais cela ne fonctionne pas.
Je ne maitrise pas les macro et c'est pourquoi je fais appel à votre aide.
En vous remerciant par avance.

Macro PDF:
Sub PDF()
On Error Resume Next
Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim Chemin As String, w As Worksheet
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
Set oFolderItem = objFolder.Items.Item
Chemin = oFolderItem.Path
For Each w In Worksheets
If w.Name <> "Accueil" Then
Chemin = oFolderItem.Path & "\" & w.Name & "- Planning Individuel - " & Format(w.[c3], "mmmm yyyy") & ".pdf"
w.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End If
Next w
End Sub
 
Dernière édition:
Re : Macro - Enregistrer chaque feuille dans un fichier.

Bonjour jlm, le forum,

A tester:

VB:
sub onglet
for i= 1 to sheets.count
sheets(i).copy
nom_fichier=sheets(i).name

activeworkbook.saveas thisworkbook.path &"\"& nom_fichier
activeworkbook.close
next
end sub
 
Re : Macro - Enregistrer chaque feuille dans un fichier.

Je viens de créer un objet et je lui est affecté cette macro mais cela ne fonctionne pas.
Ne serait'il pas possible de modifier simplement la PDF et remplacer PDF par XLSX ?

Cdlmt.

jlm94
 
Re : Macro - Enregistrer chaque feuille dans un fichier.

Bonjour à tous

Je viens de créer un objet et je lui est affecté cette macro mais cela ne fonctionne pas.
Ne serait'il pas possible de modifier simplement la PDF et remplacer PDF par XLSX ?

Sinon, tu prends l'enregistreur de macro pour avoir la bonne syntaxe.

par contre, travailler sur des objets. Pourquoi ne pas le faire directement d'Excel?
 
Re : Macro - Enregistrer chaque feuille dans un fichier.

Bonjour MJ13
Merci pour ton post mais comme je l'ai indiqué je ne maitrise pas les Macro,
et en particulier l'enregistreur dont tu parles.
Tout ce que je souhaite c'est pouvoir avoir la même macro pour XLSX que celle que j'ai actuellement pour le PDF.
Je joins le fichier actuel pour infos.
En vous remerciant par avance.
 

Pièces jointes

Re : Macro - Enregistrer chaque feuille dans un fichier.

Quand tu dis que ça ne marche pas, c'est un peu vaste pour trouver d'où vient l'erreur...

Toutefois, j'ai oublié le .xls à la fin du code...
essaie comme ça:
VB:
sub onglet
for i= 1 to sheets.count
sheets(i).copy
nom_fichier=sheets(i).name

activeworkbook.saveas thisworkbook.path &"\"& nom_fichier & ".xls"
activeworkbook.close
next
end sub
 
Re : Macro - Enregistrer chaque feuille dans un fichier.

titiborregan5
Je viens d'affecter ton code a un nouvel objet comme je l'avais fait pour le PDF
mais cela bug 'erreur 9' "L'indice n'appartient pas a la selection"
le debugueur me souligne en jaune la ligne: "nom_fichier = Sheets(i).Name"

je joins le fichier pour infos.
Désolé de ne pouvoir aider plus mais je ne maîtrise pas les macros.

Mais pour infos ne serait-il pas possible de modifier simplement le code que j'ai insérer dans mon 1er post
pour qu'il enregistre en XLSX au lieu de PDF. ?

merci par avance.
jlm94
 

Pièces jointes

Re : Macro - Enregistrer chaque feuille dans un fichier.

Mais pour infos ne serait-il pas possible de modifier simplement le code que j'ai insérer dans mon 1er post
pour qu'il enregistre en XLSX au lieu de PDF. ?

Je ne pense pas ou en tout cas ce n'est pas comme cela que je sais faire...

Essaie comme ça (j'avais mis la variable "trop tard" pour le nom du fichier du coup ça buggait...)
Code:
Sub onglet()
For i = 1 To Sheets.Count
MsgBox i
nom_fichier = Sheets(i).Name
Sheets(i).Copy
MsgBox nom_fichier

ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & nom_fichier & ".xls"
ActiveWorkbook.Close
Next
End Sub
ça doit marcher!

et j'imagine que tu ne veux pas copier la 1ère feuille? du coup commence ton i à 2 ( for i = 2 to sheets.count)
 
Re : Macro - Enregistrer chaque feuille dans un fichier.

Super ca marche,
Juste un point, je dois valider à chaque onglet,
n'est'il pas possible de lui demander d'enregistrer tous les onglets d'un coup sans être obliger de valider a chaque fois.
Merci par avance.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
245
Réponses
3
Affichages
673
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…