Partant d un fichier excel : toto.xls contenant 3 feuilles, je souhaiterai pouvoir enregistrer uniquement la feuil3 et pas les autres lorsque j appuie sur enregistrer sous.
Re : Enregistrer uniquement la Feuil3 dans un classeur ?
Bonjour Anthony, bonjour le forum,
Tu fais un clique droit sur la feuille en question puis "Déplacer ou copier" puis tu déplace ta feuille soit dans un classeur déja ouvert, soit dans un nouveau classeur que tu "enregistreras sous" une fois l'opération faite.
Tu fais un clique droit sur la feuille en question puis "Déplacer ou copier" puis tu déplace ta feuille soit dans un classeur déja ouvert, soit dans un nouveau classeur que tu "enregistreras sous" une fois l'opération faite.
Merci beaucoup pour ta reponse fanfan.
Oui bien sur mais le but etait de faire tout ca de facon automatique avec une macro car les membres de mon equipe n ont pas le temps de faire tout ca avec autant de minutie.
C'est la possibilité d'enregistrer ton fichier dans une version antériéure.
Ici la version 4, la version la plus récente qui ne possèdait pas d'onglet. Il n'y avait qu'une seule feuille par fichier XLS.
Données/Validation est une option d'Excel qui n'existait pas dans Excel 4. Donc quand on enregistre dans ce format (ancien) on perd la liste ainsi créé. Ce n'est qu'un exemple. On perdrait également les Mises en formes conditionnelles (Format/Mise en forme Conditionnelle), les fonctionnalités lien hypertexte etc ...
C'est pour le Fun car ça ne répond pas à priori directement à ta demande ...
ci-dessous le code correspondant à ta question :
Code:
Sub Test()
Sheets("Feuil3").Copy
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Test.xls"
Workbooks("Test.xls").Close True
End Sub
C'est la possibilité d'enregistrer ton fichier dans une version antériéure.
Ici la version 4, la version la plus récente qui ne possèdait pas d'onglet. Il n'y avait qu'une seule feuille par fichier XLS.
Données/Validation est une option d'Excel qui n'existait pas dans Excel 4. Donc quand on enregistre dans ce format (ancien) on perd la liste ainsi créé. Ce n'est qu'un exemple. On perdrait également les Mises en formes conditionnelles (Format/Mise en forme Conditionnelle), les fonctionnalités lien hypertexte etc ...
C'est pour le Fun car ça ne répond pas à priori directement à ta demande ...
ci-dessous le code correspondant à ta question :
Code:
Sub Test()
Sheets("Feuil3").Copy
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Test.xls"
Workbooks("Test.xls").Close True
End Sub
Re : Enregistrer uniquement la Feuil3 dans un classeur ?
Re,
Quelle est ta version d'Excel ?
As tu testé ce code dans un fichier contenant d'autres modules ?
Si oui, ferme Excel et ré-essaie dans un fichier vierge. Regarde également dans l'aide Vba : "Erreurs récupérables" il y a un certain nombre de choses à vérifier concernant l'erreur "Espace pile insuffisant (erreur 28)".
Le code fontionne chez moi sur une version Excel 2002.
Re : Enregistrer uniquement la Feuil3 dans un classeur ?
Salut, voilà ce que j'ai employé, sans doute à adapter à ton contexte
Code:
Option Explicit
Sub Tst()
Dim i As Long, Ar() As String, Cpt As Long
Cpt = 0
For i = 1 To ThisWorkbook.Sheets.Count
If Left$(Sheets(i).Name, 2) = "RF" Or Left$(Sheets(i).Name, 2) = "RC" Then
ReDim Preserve Ar(Cpt)
Ar(Cpt) = Sheets(i).Name
Cpt = Cpt + 1
End If
Next i
If Cpt = 0 Then Exit Sub
Application.ScreenUpdating = False
Sheets(Ar).Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & "Test.xls", FileFormat:=xlNormal
ActiveWindow.Close
With Application
.DisplayAlerts = True
.ScreenUpdating = True
End With
Sheets("RC1").Select
End Sub
Re : Enregistrer uniquement la Feuil3 dans un classeur ?
Bonjour Kiki29,
Une petite adaptation de ton code :
Code:
Sub Test()
Dim Ar() As String
Cpt = 0
For Each X In ThisWorkbook.Sheets
If Left$(X.Name, 2) = "RF" Or Left$(X.Name, 2) = "RC" Then
ReDim Preserve Ar(Cpt)
Ar(Cpt) = X.Name
Cpt = Cpt + 1
End If
Next
If Cpt = 0 Then Exit Sub
Application.ScreenUpdating = False
Sheets(Ar).Copy
ActiveWindow.Close SaveChanges:=True, Filename:=ThisWorkbook.Path & "\" & "Test.xls"
Application.ScreenUpdating = True
End Sub
Re : Enregistrer uniquement la Feuil3 dans un classeur ?
Re,
Tous les codes que vous avez fourni aboutissent a la création d un fichier Test.xls qui comporte toutes les feuilles du fichier d'origine et non pas que la feuil3.
Je vous envoie ci joint un fichier simplifie qu il faut manipuler de la façon suivante par exemple :
1/ Ouvrir le fichier d'origine "Copie de FICHE DE LIAISON NOUVELLE.xls"
******************************************************
La date de la prochaine réception sera le 22/09/2009
Faire Enregistrer sous
'A ce stade un fichier "Fiche de Liaison du 22.09.2009" se créer automatiquement avec toutes les feuilles du fichier d'origine
Inscrire en Feuil1.[E59] la valeur 1
'On remarque alors qu il apparait 1 palette dans le suivi logistique en date du 22/09/2009
Enregistrer a l aide de l icône disquette
Fermer avec la croix
2/ Ouvrir le fichier d'origine "Copie de FICHE DE LIAISON NOUVELLE.xls"
*****************************************************
La date de la prochaine réception sera le 23/09/2009
Faire Enregistrer sous
'A ce stade un fichier "Fiche de Liaison du 23.09.2009" se créer automatiquement avec toutes les feuilles du fichier d'origine
Inscrire en Feuil1.[E59] la valeur 2
'On remarque alors qu il apparait 2 palettes dans le suivi logistique en date du 23/09/2009
Enregistrer a l aide de l icône disquette
Fermer avec la croix
But de la manœuvre :
*****************
Créer un historique du suivi logistique (La feuil3 du fichier d origine) afin de voir par exemple ici que le 22/09/2009 une seule palette a été envoyée et que le 23/09/2009 2 palettes ont été envoyées.
En espérant avoir été plus concret
Cordialement
Anthony
Tous les codes que vous avez fourni aboutissent a la création d un fichier Test.xls qui comporte toutes les feuilles du fichier d'origine et non pas que la feuil3.