Copie onglet dans nouveau fichier et enregistrer sous

Bonjour à tous,

Je me heurte à un petit problème. Depuis une même macro,

je cherche à copier un onglet dans un nouveau fichier, en y enlevant:

  • les boutons de macro
  • les macros
  • les formules et liens
Une fois cela fait (mon fichier est crée avec le bon onglet sous le nom générique Classeur"x"), je cherche à enregistrer le nouveau fichier sous un nom définit par certaines cellules du nouveau fichier et à ouvrir la boite d'enregistrement sous, pour laisser à l'utilisateur le choix de l'endroit de réception du fichier.

Ma boite d'enregistrement sous s'ouvre bien, en proposant le bon nom de fichier. Mon problème est que lors de la validation d'enregistrement, il y a bug me soulignant la phrase:

ActiveWorkbook.SaveAs NomSauve

Malgré mais recherche, je ne trouve pas la raison de ce bug.

Merci de votre aide.

Voici ma Macro:

Sub CopierFeuille()

Application.EnableEvents = False

ThisWorkbook.Sheets("PSR").Copy

With ActiveWorkbook

'suppression des boutons

ActiveSheet.Shapes.SelectAll

Selection.Delete

'suppression des macros

With .VBProject.VBComponents(.Sheets(1).CodeName).CodeModule

.DeleteLines 1, .CountOfLines

End With

'Suppression des formules

Cells.Select

Selection.Copy

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

False, Transpose:=False

Application.CutCopyMode = False

Cells(1, 1).Select

'definition du nom du fichier

NomDeSauvegarde = "PSR_Applicant" & "_" & ActiveWorkbook.Sheets("PSR").Range("K2").Text & ActiveWorkbook.Sheets("PSR").Range("M2").Text & ActiveWorkbook.Sheets("PSR").Range("O2").Text & ActiveWorkbook.Sheets("PSR").Range("P2").Text & " " & Left(ActiveWorkbook.Sheets("PSR").Range("B10").Text, 8)

NomSauve = ActiveWorkbook.Application.GetSaveAsFilename(InitialFileName:=NomDeSauvegarde, _

FileFilter:="Excel Files (*.xls*), *.xls*")

If NomSauve = False Then Exit Sub

ActiveWorkbook.SaveAs NomSauve

End With

Application.EnableEvents = True

End Sub

Bonjour

Essaie en remplaçant l'instruction qui bug

ActiveWorkbook.SaveAs NomSauve

par :

ActiveWorkbook.SaveAs FileName:=NomSauve

Bye !

Merci beaucoup gmb,

mais cela ne fonctionne pas non plus.

Petite précision, tout fonctionne, si j'enlève:

FileFilter:="Excel Files (*.xls*), *.xls*")

Le problème vient donc du format d'enregistrement. Savez-vous pourquoi?

Merci

fouxien a écrit :

Le problème vient donc du format d'enregistrement. Savez-vous pourquoi?

Avec le fichier, je pourrais faire des tests.

Mais, au risque de dire des bêtises, je tenterai avec l' instruction suivante :

FileFilter:="Excel Files (*.xls), *xls")

C'est à dire sans l'astérisque à la fin des xls (l'extension xls* n'existe pas) et sans le point devant le 2° xls

Et dis-moi le résultat...

Bye !

Merci gmb,

Je viens de voir ton message et c'est exactement ça.

Je m’étais contenter de forcer uniquement le nom d'enregistrement et le fichier était enregistré en xls par defaut.

Mais grâce à toi, mon code est comme je le voulais.

Merci beaucoup pour ton aide et ta réactivité.

Fouxien

Rechercher des sujets similaires à "copie onglet nouveau fichier enregistrer"