Extraire un onglet Excel pour l'enregistrer dans un autre fi

Bonjour à tous,

Alors voilà j'ai un classeur excel contenant un onglet avec une facture. J'aimerais pouvoir enregistrer cette facture dans un autre fichier excel en gardant la mise en forme et qu’elle se mette dans le dossier de mon choix.

J'ai déjà bien avancé sur le code VBA mais je n'arrive pas à ce qu'elle s'enregistre dans mon dossier de destination.

Je vous met le code ci-dessous :

Sub Excel()

'

' Excel Macro

Chemindossier = "C:\Users\stephane\Dropbox\Finance\Factures\2018\"

sortie = Range("E17").Value & "-" & Range("C5").Value & ".xls"

'sauvegarde du nom du classeur et de la feuille active

originefeuille = ActiveSheet.Name

origineclasseur = ActiveWorkbook.Name

'creation de ton doc "sortie"

Workbooks.Add.SaveAs sortie

Worksheets.Add.Name = "facture"

'retour sur le fichier d'origine pour copier

Workbooks(origineclasseur).Activate

Sheets(originefeuille).Select

Range("A1:E55").Select

Selection.Copy

'collage dans le classeur créé

Workbooks(sortie).Activate

Sheets("facture").Select

Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Workbooks(sortie).Save

Workbooks(sortie).Close

Worksheets("facture").Range("A1:E55").ExportAsFixedFormat Type:=xlTypexl, _

Filename:=Chemindossier & Range("E17").Value & "-" & Range("C5").Value, _

Quality:=xlQualityStandard, _

IncludeDocProperties:=True, _

IgnorePrintAreas:=False, _

OpenAfterPublish:=False

End Sub

Merci d'avance aux personnes pouvant me débloquer

Bonjour,

Si tu es en Excel 2013, pourquoi enregistrer ton fichier au format .xls?

Je n'ai peut-être pas tout compris, mais s'il s'agit d'enregistrer une copie de ta feuille au format Excel, il me semble que tu pourrais te contenter d'écrire:

Sub test_xlsx()

cheminDossier = "C:\Users\stephane\Dropbox\Finance\Factures\2018\"
sortie = Range("AG17").Value & "-" & Range("C5").Value & ".xlsx"

ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=cheminDossier & sortie
End Sub

Si tu dois vraiment sauvegarder en ".xls", essaie:

Sub test_xls()

cheminDossier = "C:\Users\stephane\Dropbox\Finance\Factures\2018\"
sortie = Range("AG17").Value & "-" & Range("C5").Value & ".xls"

ActiveSheet.Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=cheminDossier & sortie, FileFormat:=xlExcel8
End Sub

Bonjour

IL faut copier l'onglet, pas la plage

Sheets(originefeuille).Copy Before:=Workbooks(sortie).Sheets(1)

Merci à vous pour votre aide.

Mon problème est que je veux seulement les cellules de A1 à E55 avec un collage spécial des valeurs, de la mise en forme et de la largeur de's colonnes.

Votre code fonctionne mais pour toute la feuille.

J'arrive presque à bout de ce code mais qui me crée 2 fichiers et je comprend pas forcement pourquoi ...

Code :

Sub Excel()

'

' Excel Macro

Chemindossier = "C:\Users\stephane\Dropbox\Finance\Factures\2018\"

sortie = Range("E17").Value & "-" & Range("C5").Value & ".xls"

'sauvegarde du nom du classeur et de la feuille active

originefeuille = ActiveSheet.Name

origineclasseur = ActiveWorkbook.Name

'creation de ton doc "sortie"

Workbooks.Add.SaveAs sortie

Worksheets.Add.Name = "facture"

'retour sur le fichier d'origine pour copier

Workbooks(origineclasseur).Activate

Sheets(originefeuille).Select

Range("A1:E55").Select

Selection.Copy

'collage dans le classeur créé

Workbooks(sortie).Activate

Sheets("facture").Select

Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

ActiveWorkbook.SaveAs Filename:=Chemindossier & sortie, FileFormat:=xlExcel8

Workbooks(sortie).Close

End Sub

Merci à ceux qui pourront me dire.

Bonjour stephane86,

Tu a écrit :

J'arrive presque à bout de ce code mais qui me crée 2 fichiers et je comprend pas forcément pourquoi...

Sauf erreur de ma part, tu as ces 2 instructions .SaveAs :

'creation de ton doc "sortie"

Workbooks.Add.SaveAs sortie

Worksheets.Add.Name = "facture"

ActiveWorkbook.SaveAs Filename:=Chemindossier & sortie, FileFormat:=xlExcel8

Cordialement

Re

stephane86 a écrit :

...Mon problème est que je veux seulement les cellules de A1 à E55 avec un collage spécial des valeurs, de la mise en forme et de la largeur des colonnes.

Votre code fonctionne mais pour toute la feuille.

Alors il faut mettre en titre "Extraire une plage" et non "Extraire un onglet"

Rechercher des sujets similaires à "extraire onglet enregistrer"