OVH Cloud OVH Cloud

Renommer un classeur selon onglet

3 réponses
Avatar
Richard G.
Bonjour,

Je cherche =E0 d=E9velopper une macro qui cr=E9=E9e un nouveau r=E9pertoire,
selectionne cahque feuille du classeur actif, la colle dans un nouveau
classeur et enregistre ce nouveau classeur dans le r=E9pertoire cr=E9er
en lui donnant le nom de la feuille.

C'est au momenet du renommage que je bloque.
Merci par avance.

Voici le code :

Sub Creer_Dossier()

For i =3D 1 To Sheets.Count

ActiveSheet.Select
ActiveSheet.Copy
Dim fso As New FileSystemObject
If Not fso.FolderExists("C:\Documents and Settings\Classeur") Then
fso.CreateFolder "C:\Documents and Settings\Classeurs"

Dim NomClasseur
Set NomClasseur =3D Worksheets(i).Name

ChDir "C:\Documents and Settings\Classeur"
ActiveWorkbook.SaveAs Filename:=3DNomClasseur

Next i

End Sub

3 réponses

Avatar
Ardus Petus
J'ai passablement remanié ta procédure:

Cordialement,
--
AP

'-------------------------------------
'Sub Creer_Dossier()
Const subdir = "C:Documents and SettingsClasseur"
Dim fso As FileSystemObject
Dim ws As Worksheet
Dim saveNbWs As Long

Set fso = New FileSystemObject
If Not fso.FolderExists(subdir) Then
fso.CreateFolder subdir
End If

saveNbWs = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1

For Each ws In Worksheets
ws.Copy
ActiveWorkbook.SaveAs Filename:=ws.Name
ActiveWorkbook.Close
Next ws

Application.SheetsInNewWorkbook = saveNbWs
End Sub
'----------------------------------------------

"Richard G." a écrit dans le message de
news:
Bonjour,

Je cherche à développer une macro qui créée un nouveau répertoire,
selectionne cahque feuille du classeur actif, la colle dans un nouveau
classeur et enregistre ce nouveau classeur dans le répertoire créer
en lui donnant le nom de la feuille.

C'est au momenet du renommage que je bloque.
Merci par avance.

Voici le code :

Sub Creer_Dossier()

For i = 1 To Sheets.Count

ActiveSheet.Select
ActiveSheet.Copy
Dim fso As New FileSystemObject
If Not fso.FolderExists("C:Documents and SettingsClasseur") Then
fso.CreateFolder "C:Documents and SettingsClasseurs"

Dim NomClasseur
Set NomClasseur = Worksheets(i).Name

ChDir "C:Documents and SettingsClasseur"
ActiveWorkbook.SaveAs Filename:=NomClasseur

Next i

End Sub
Avatar
Richard G.
Merci beaucoup Ardus Petus. J'ai oublié de précisé que chacune de
ces feuilles ne contient qu'un seul graphiques.
Et là c'est le drame ! ça ne marche plus dans ce cas là. Une idée ??
Avatar
Ardus Petus
Je n'ai pas essayé, mais ça doit marcher:

'-------------------------------------
Sub Creer_Dossier()
Const SubDir As String = "C:Documents and SettingsClasseur"
Dim fso As FileSystemObject
Dim sh As Chart
Dim saveNbWs As Long

Set fso = New FileSystemObject
If Not fso.FolderExists(SubDir) Then
fso.CreateFolder SubDir
End If

saveNbWs = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1

For Each sh In Sheets
sh.Copy
ActiveWorkbook.SaveAs Filename:=sh.Name
ActiveWorkbook.Close
Next sh

Application.SheetsInNewWorkbook = saveNbWs
End Sub
'----------------------------------------------


"Richard G." a écrit dans le message de
news:
Merci beaucoup Ardus Petus. J'ai oublié de précisé que chacune de
ces feuilles ne contient qu'un seul graphiques.
Et là c'est le drame ! ça ne marche plus dans ce cas là. Une idée ??