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...
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à
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 ?
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 SubDé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
Re,
Pas testé
Remplaces :
With ActiveWorkbook
.SaveAs Chemin & NomHotel & "\" & Fichier, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
.Close
End Withpar :
With ActiveWorkbook
.SaveCopyAs Chemin & NomHotel & "\" & Fichier
End WithRe,
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.