Copier feuille vers nouvel onglet à sauvegarder

Bonjour

Je cherche le code afin de copier un onglet existant (REF) vers un nouveau classeur classeur. La nouvelle feuille de ce classeur doit se nommer "Feuil1" et le classeur doit etre sauvegarder sur C:\ avec le nom "EXPERT"_Date du jour

Merci de votre aide

PJ: Classeur de départ

15export.xlsm (9.88 Ko)

Bonjour,

Une piste :

Sub CopieFeuille()

    Dim Cls1 As Workbook
    Dim Cls2 As Workbook
    Dim Nom As String

    Set Cls1 = ThisWorkbook
    Set Cls2 = Workbooks.Add

    ThisWorkbook.Worksheets("EXPORT").Copy , Cls2.Sheets(Cls2.Sheets.Count)

    Application.DisplayAlerts = False
    Cls2.Worksheets(Array("Feuil1", "Feuil2", "Feuil3")).Delete
    Application.DisplayAlerts = True

    Cls2.Worksheets(1).Name = "Feuil1"

    Nom = "EXPERT_" & Format(Date, "dd-mm-yyyy")

    Cls2.SaveAs "C:\" & Nom
    Cls2.Close

End Sub

Bonjour,

un petit test en lançant la macro.

Ps il faut d'abord créer un répertoire "EXPORTS" sur C: ( C:\EXPORTS )

j'ignore pourquoi mais çà plante si adresse directement à la racine de "C:\"

Protection Windows 10 ?

7export-1.xlsm (16.91 Ko)

Bonjour à tous,

j'ignore pourquoi mais çà plante si adresse directement à la racine de "C:\"

Le répertoire racine (c:\) est limité à 256 entrées (programmation Microsoft).

C'est pour cela qu'il y a erreur en enregistrant au racine ... afin de ne pas encombrer ce dossier.

Dans un sous-dossier, on peut y mettre des milliers de fichiers et dossiers.

ric

bonjour

à quoi sert cette copie du genre sauvegarde ?

il vaut bien mieux avoir un système de sauvegarde pour l'ensemble des fichiers de travail et non un petit truc séparé pour un petit fichier spécial Excel.

vois ton informaticien réseau.

il peut aussi si tu as une demande spéciale, faire la routine d'enregistrement du classeur entier sous EXPERT_20180723.xlsx

(il ne fera pas d'enregistrement d'une feuille extraite du classeur)

bonjour

à quoi sert cette copie du genre sauvegarde ?

il vaut bien mieux avoir un système de sauvegarde pour l'ensemble des fichiers de travail et non un petit truc séparé pour un petit fichier spécial Excel.

vois ton informaticien réseau.

il peut aussi si tu as une demande spéciale, faire la routine d'enregistrement du classeur entier sous EXPERT_20180723.xlsx

(il ne fera pas d'enregistrement d'une feuille extraite du classeur)

Bonjour jmd, merci pour ton retour

L'objectif est un peu plus complexe que cela, ce n'est qu'un morceau de l'outil final

re

eh bien tu sais que ton outil (Excel ou autre) peut parfaitement extraire les données dont il a besoin directement à la source, sans passer par des petits fichiers journaliers.

d'ailleurs il est alors obligé de les réagréger avec ceux précédents

découper puis recoller ?

c'est ça ?

je ne comprends pas l'organisation globale ni son BUT ?

Bonjour,

Une autre proposition à étudier.

Cdlt.

Public Sub CopySheetInNewWorkbook()
Dim n As Long, strFullName As String
    strFullName = "C:\EXPORT_" & Format(Date, "YYYYMMDD") & ".xlsx"
    With Application
        n = .SheetsInNewWorkbook
        .SheetsInNewWorkbook = 1
    End With
    ThisWorkbook.Worksheets("REF").Copy
    With ActiveWorkbook
        .Worksheets(1).Name = "Feuil1"
        .SaveAs Filename:=strFullName, FileFormat:=51
        .Close savechanges:=False
    End With
    Application.SheetsInNewWorkbook = n
End Sub

Bonjour à tous,

Le répertoire racine (c:\) est limité à 256 entrées (programmation Microsoft).

C'est pour cela qu'il y a erreur en enregistrant au racine ... afin de ne pas encombrer ce dossier.

Dans un sous-dossier, on peut y mettre des milliers de fichiers et dossiers.

ric

Bonjour Ric et bien vu , j'avoue que j'ignorai totalement cette info merci.

Rechercher des sujets similaires à "copier feuille nouvel onglet sauvegarder"