Macro - Enregistrer chaque feuille dans un fichier.

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:

jlm94

XLDnaute Junior
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
 

MJ13

XLDnaute Barbatruc
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?
 

jlm94

XLDnaute Junior
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

  • Planning Individuels.xlsm
    43.4 KB · Affichages: 76
  • Planning Individuels.xlsm
    43.4 KB · Affichages: 86
  • Planning Individuels.xlsm
    43.4 KB · Affichages: 93

titiborregan5

XLDnaute Accro
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
 

jlm94

XLDnaute Junior
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

  • Planning Individuels.xlsm
    45.9 KB · Affichages: 76
  • Planning Individuels.xlsm
    45.9 KB · Affichages: 83
  • Planning Individuels.xlsm
    45.9 KB · Affichages: 97

titiborregan5

XLDnaute Accro
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)
 

jlm94

XLDnaute Junior
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.
 

Discussions similaires

Réponses
2
Affichages
220
Réponses
2
Affichages
283

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972