Enregistrer 3 Feuilles

Bonjour le forum,

J'ai un fichier contenant 5 feuilles au total. Néanmoins lorsque je l'enregistre je souhaiterai que seulement 3 feuilles soit enregistrées.

J'ai confectionné un code permettant :

=> De créer un fichier au nom spécifié dans le code si ce dernier n'existait pas encore

=> D'enregistrer un seul onglet du document Excel en question au format Xlsm

Néanmoins à l'heure actuelle je souhaiterai enregistrer 3 onglets et non plus un seul...

J'ai beau essayer de changer le code, je n'y arrive pas....

Quelqu'un pourrait il m'aider s'il vous plait ?

Ci-joint un fichier exemple dénudé de toutes les informations confidentielles...

17hotels.zip (8.90 Ko)

Bonjour Greg.leo

Sinon vous supprimez ou masquez simplement les deux feuilles non ?

Bonjour Lean,

Très bonne idée que vous avez eu là Nous pouvons utiliser la fonction "Veryhidden" dans ce cas là.

Le problème c'est que dès que j'enlève de mon code : "Sheets(Range("C1").Value).Copy" il fonctionne plus correctement...

Avez une solution ?

EDIT 1.0 : J'ai réussi à modifier le code. Néanmoins je souhaiterai que le fichier enregistré ne s'ouvre pas et que je reste sur le fichier de base... Quelqu'un connait la manipulation ? Merci !

Le code :

Sub Enregistrer()

Feuil1.Range("D4") = Now
Application.ScreenUpdating = False

Dim Chemin$, NomHotel$, Fichier$
Chemin = "C:\Users\2PAT\Desktop\Hotels\"
NomHotel = Feuil1.Range("A9") & " " & Feuil1.Range("A12") & " " & Feuil1.Range("A10")
Fichier =NomHotel & " " & Format(Date, "dd.mm.yyyy") & " " & Feuil1.Range("D5") & ".xlsm"

' Si NomHotel n'existe pas alors création de fichier

If Dir(Chemin & NomHotel, 16) = "" Then MkDir Chemin & NomHotel
With ActiveWorkbook
 .SaveAs Filename:=Chemin & NomHotel & "\" & Fichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End With

    End Sub

Désolé je ne maîtrise pas du tout cette partie là.

Cependant j'ai une question (compte-tenu que je suis novice) :

Sheets(Range("C1").Value).Copy

En Vba, nous ne sommes pas obligé de spécifier un nom ou numéro de feuille ?

Bonjour,

Un exemple poursupprimer des feuilles avant l'enregistrement.

Cdlt

Option Explicit
Public Sub Enregistrer()
Dim Chemin As String, NomHotel As String, Fichier As String
Dim wS As Worksheet
Dim i As Byte

    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
    End With

    Set wS = Worksheets(1)
    With wS
        .[D4] = Now
        Chemin = "C:\Users\greg.leo\Desktop\Hotels\"
        NomHotel = .[A9] & " " & .[A12] & " " & .[A10]
        Fichier = NomHotel & " " & Format(Date, "dd.mm.yyyy") & " " & .[D5] & ".xlsm"
        Set wS = Nothing
    End With

    For i = 4 To Worksheets.Count
        Worksheets(i).Delete
    Next

    If Dir(Chemin & NomHotel, 16) = "" Then MkDir Chemin & NomHotel

    With ActiveWorkbook
        .SaveAs Chemin & NomHotel & "\" & Fichier, _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled
        .Close
    End With

    Application.DisplayAlerts = True

End Sub
10hotels.xlsm (17.37 Ko)

Re,

Pas testé Excel planté

Remplaces :

With ActiveWorkbook
        .SaveAs Chemin & NomHotel & "\" & Fichier, _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled
        .Close
End With

par :

With ActiveWorkbook
        .SaveCopyAs Chemin & NomHotel & "\" & Fichier
End With

Re,

ne fonctionne pas, désolé

Cdlt

Lean : Non nous ne sommes pas obligé de le spécifier lorsque nous sommes sur que la macro agit sur la feuille en question

Bonjour Jean-Eric,

Merci d'avoir pris de votre temps pour confectionner ce code. Je vous en remercie beaucoup. Votre code enregistre le nouveau fichier comme je le souhaite (avec les trois onglets souhaités). Néanmoins il me ferme aussi le fichier actuel :/

Je me suis donc permis de modifier votre code pour que ce dernier me réouvre le fichier de base.

Option Explicit
Public Sub Enregistrer()
Dim Chemin As String, NomHotel As String, Fichier As String
Dim wS As Worksheet
Dim i As Byte

    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
    End With

    Set wS = Worksheets(1)
    With wS
        .[D4] = Now
        Chemin = "C:\Users\greg.leo\Desktop\Hotels\"
        NomHotel = .[A9] & " " & .[A12] & " " & .[A10]
        Fichier = NomHotel & " " & Format(Date, "dd.mm.yyyy") & " " & .[D5] & ".xlsm"
        Set wS = Nothing
    End With

    For i = 4 To Worksheets.Count

       Worksheets(i).Visible = xlSheetVeryHidden

    Next

    If Dir(Chemin & NomHotel, 16) = "" Then MkDir Chemin & NomHotel

    With ActiveWorkbook
        .SaveAs Chemin & NomHotel & "\" & Fichier, _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled

Workbooks.Open Filename:= _
        "C:\Users\greg.leo\Desktop\Hotels\\Hotels.xls"
    Windows("Hotels.xls").Activate

.Close
    End With

    Application.DisplayAlerts = True

End Sub
 

Greg.leo,

Merci pour la réponse.

Rechercher des sujets similaires à "enregistrer feuilles"