enregistrer une seule feuille sans les macros

fdoz77

XLDnaute Nouveau
Bonjour
Je souhait enregistrer une seule feuille d'un classeur sans les macros dans un nouveau classeur ni les boutons qui se trouve sur la feuille et pouvoir choisir le dossier et le nom du fichier pour l'enregistrement.voici le code que j'ai, mais il supprime que les modules avec les macros et il me copie toutes les feuilles avec les boutons.
Merci si vous avez une solution.

Private Sub CommandButton2_Click()
Dim W1 As Workbook
Dim W2 As Workbook
Dim i&
Dim Suggere As Variant
Dim Reponse As Variant
On Error GoTo Erreur
Application.ScreenUpdating = False
'---- Votre classeur instance de xlt ----
Set W1 = ThisWorkbook
'---- Classeur cible à enregistrer ----
Set W2 = Workbooks.Add(xlWBATWorksheet)
'---- Nom feuille bidon pour éviter conflit ----
W2.Sheets(1).Name = "_tEmPo_"
'---- Copie de toutes les feuilles avec leurs ----
'---- formats et mise en page d'impression ----
For i& = 1 To W1.Sheets.Count
W1.Sheets(i&).Copy after:=W2.Sheets(W2.Sheets.Count)
Next i&
'---- Destruction de la feuille bidon ----
Application.DisplayAlerts = False
W2.Sheets(1).Delete
'---- Sauvegarde du classeur cible ----
Suggere = "A remplacer par votre variable nom"
Reponse = Application.GetSaveAsFilename( _
InitialFileName:=Suggere, _
fileFilter:="Classeur Microsoft Excel (*.xls), *.xls")
If Reponse <> False Then W2.SaveAs Filename:=Reponse
'#### LIGNES A OCCULTER SELON VOTRE GRE ####
'---- Ferme sans sauvegarder votre instance de xlt ----
W1.Saved = True
'###########################################
'---- Pseudo traitement d'erreur ----
'---- Si plantage on remet les choses en place ----
Erreur:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
 

JCGL

XLDnaute Barbatruc
Re : enregistrer une seule feuille sans les macros

Bonjour à tous,
Bienvenue sur XLD,

Peux-tu essayer avec :

VB:
.......
For i& = 1 To W1.Sheets.Count
W1.Sheets(i&).Copy after:=W2.Sheets(W2.Sheets.Count)
ActiveSheet.DrawingObjects.Delete
Next i&
.....

Quelle feuille souhaites tu copier ?

A + à tous
 

JCGL

XLDnaute Barbatruc
Re : enregistrer une seule feuille sans les macros

Bonjour à tous,

Peux-tu essayer :

VB:
Option Explicit


Sub Test()
Dim W1 As Workbook
Dim W2 As Workbook
Dim i&
Dim Suggere As Variant
Dim Reponse As Variant
On Error GoTo Erreur
Application.ScreenUpdating = False
Set W1 = ThisWorkbook
Set W2 = Workbooks.Add(xlWBATWorksheet)
W2.Sheets(1).Name = "_Tempo_"
W1.Sheets(1).Copy after:=W2.Sheets(W2.Sheets.Count)
ActiveSheet.DrawingObjects.Delete
Application.DisplayAlerts = False
W2.Sheets(1).Delete
Suggere = "A remplacer par votre variable nom"
Reponse = Application.GetSaveAsFilename( _
InitialFileName:=Suggere, _
fileFilter:="Classeur Microsoft Excel (*.xls), *.xls")
If Reponse <> False Then W2.SaveAs Filename:=Reponse
W1.Saved = True
Erreur:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

A + à tous
 

Efgé

XLDnaute Barbatruc
Re : enregistrer une seule feuille sans les macros

Bonjour fdoz77_ Bonjour JCGL :) _Une proposition pour supprimer tout le code de la feuille_ Cordialement
VB:
Private Sub CommandButton1_Click()
'ajouter la référence
'"Microsoft visual Basic For Application Extensenbility x.x"
Dim Suggere As Variant
Dim Reponse As Variant
Suggere = "A remplacer par votre variable nom"
On Error GoTo Erreur
Application.ScreenUpdating = False
ThisWorkbook.Sheets(1).Copy
ActiveWorkbook.ActiveSheet.DrawingObjects.Delete
    With Workbooks(ActiveWorkbook.Name).VBProject.VBComponents(ActiveSheet.Name).CodeModule
         .DeleteLines 1, .CountOfLines
    End With
    Reponse = Application.GetSaveAsFilename(InitialFileName:=Suggere, _
                                            fileFilter:="Classeur Microsoft Excel (*.xls), *.xls")
    If Reponse <> False Then ActiveWorkbook.SaveAs Filename:=Reponse
Erreur:
End Sub
 

Pièces jointes

  • fdoz77(1).xls
    25 KB · Affichages: 71
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : enregistrer une seule feuille sans les macros

Bonjour à tous

Vous pouvez tester ce code:

Code:
Sub Copie_Feuille_Avec_MEP()
'MJ
NomPath = ActiveWorkbook.Path
'A Adapter 4 ou 5 si .xls ou .xlsm
NomFich = Mid(ActiveWorkbook.Name, 1, Len(ActiveWorkbook.Name) - 4)
Nomfeuille = ActiveSheet.Name
ActiveSheet.Copy
'Application.DisplayAlerts = False
ActiveWorkbook.SaveAs NomPath & "\" & NomFich & " " & Nomfeuille & ".xlsx"
'Application.DisplayAlerts = True
End Sub
 

fdoz77

XLDnaute Nouveau
Re : enregistrer une seule feuille sans les macros

bonjour
J'ai mis ta macro dans ma feuille 1 pour la lancer avec le bouton et après l'avoir activé la macro est copiée sur la nouvelle feuille par contre si je la m’ait dans un module elle n'apparait pas, mais je ne peu pas la lancer avec le bouton
 

Efgé

XLDnaute Barbatruc
Re : enregistrer une seule feuille sans les macros

Re, Bonjour MJ13 :)
@ fdoz77 :
Quand on copie juste une feuille il me parait normale que les modules ne soient plus là...

Si tu métais un fichier annonyme pour voir quel problème tu rencontre, je pense que tous le monde, et toi le premier, gagnerai du temps.. Enfin ce n'est que mon avis..

Cordialement
 

JCGL

XLDnaute Barbatruc
Re : enregistrer une seule feuille sans les macros

Bonjour à tous,

FDozz : Merci de notifier à qui tu t'adresses....

Merci aussi de tester le fichier joint et tu constateras que la copie n'a ni code, ni forme.

Ma macro est à mettre dans un module standard

A + à tous
 

Pièces jointes

  • JC Classeur Source pour Copie sans Macro et sans Formes.xls
    36.5 KB · Affichages: 86

fdoz77

XLDnaute Nouveau
Re : enregistrer une seule feuille sans les macros

Bonjour JCGL
merci pour ta macro elle fonction.j'ai compris pourquoi elle ne fonctionnée pas quand je l’intégré a nom fichier. tu crées ton bouton sans utiliser les boutons vba
 

Discussions similaires

Réponses
2
Affichages
99

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 849
dernier inscrit
florentMIG