Créer un classeur par feuille

FaridP

XLDnaute Occasionnel
Bonjour à toutes et à tous,

J'essaie de créer un classeur pour chacune des feuilles de mon document mais les fichiers créés sont vides, je ne vois pas ce qui cloche dans mon code car je suis passé par l'enregistreur de macros, pourriez-vous m'aider ou me mettre sur la voie ?
VB:
Sub CreateFic()

Dim Ws As Worksheet
Dim NomFic As String
Application.DisplayAlerts = False

For Each Ws In ThisWorkbook.Worksheets

NomFic = Ws.Name

    Cells.Copy
    Workbooks.Add
    Cells.Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ChDir "C:\Test"
    ActiveWorkbook.SaveAs Filename:="C:\Test\" & NomFic & ".xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWindow.Close
  
Next Ws

Application.DisplayAlerts = True

End Sub

Merci pour votre aide et bonne fin de journée,

Farid :);)
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Essayez comme ça :
VB:
Sub CreateFic()
Dim Wsh As Worksheet
ChDrive "C": ChDir "C:\Test"
For Each Wsh In ThisWorkbook.Worksheets
   Workbooks.Add
   Wsh.Cells.Copy Destination:=ActiveSheet.[A1]
   ActiveWorkbook.SaveAs Filename:=Wsh.Name & ".xlsx", _
      FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
   ActiveWorkbook.Close SaveChanges:=True
   Next Wsh
End Sub
 

FaridP

XLDnaute Occasionnel
Je viens d'essayer depuis un autre poste sur lequel les classeurs n'avaient jamais été créés et même résultat : fichier vide. :(

Par acquis de conscience, j'ai même testé avec un nouveau classeur contenant uniquement 1 ligne de données et pareil.
 
Dernière édition:

FaridP

XLDnaute Occasionnel
C'est bon, j'ai réussi en modifiant très légèrement le code ! :D
VB:
Sub CreateFic()

Dim Wsh As Worksheet
ChDrive "C": ChDir "C:\Test"

For Each Wsh In ThisWorkbook.Worksheets
   
    Wsh.Copy
    ActiveWorkbook.SaveAs Filename:=Wsh.Name & ".xlsx", _
      FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWorkbook.Close SaveChanges:=True

Next Wsh

End Sub

Merci beaucoup car sans votre aide, je serais bon pour le faire à la main. ;):)
 

Discussions similaires