enregistrer une feuille active en .xls

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

GysEcxelVBA

XLDnaute Nouveau
Bonjour, Salut a tout le monde,

après multiple recherche sur le site et autres, j'ai pas trouver le bon code pour pouvoir enregistrer une feuille active du classeur en .xls de manière automatique.

Voilà : j'utilise de code
Code:
Private Sub MenDmr_Click()
Application.DisplayAlerts = False

    ActiveSheet.Select
    ActiveSheet.Copy
With ActiveSheet
    Sheets("Liste").MenDmr.Visible = False
    
End With
Application.Dialogs(xlDialogSaveAs).Show ("Liste")
Application.DisplayAlerts = True
ActiveWorkbook.Close

End Sub

Avec ce code, il m'affiche bien la boite de dialogue enregistrer sous mais je dois a chaque fois choisir .xls.

Merci de votre aide
 
Re : enregistrer une feuille active en .xls

Bonjour,

utilise GetSaveAsFilename

Code:
Private Sub MenDmr_Click()
  Dim saveName As Variant
  
  Application.DisplayAlerts = False
  With ActiveSheet
    .Select
    .Copy
    Sheets("Liste").MenDmr.Visible = False
  End With
  
  saveName = Application.GetSaveAsFilename(FileFilter:="Excel Files (*.xls), *.xls")
  If saveName <> False Then
    ActiveWorkbook.SaveAs Filename:=saveName , FileFormat:=xlExcel8
    ActiveWorkbook.Close
  End If
  
End Sub
 
Re : enregistrer une feuille active en .xls

Bonjour GysEcxelVBA,

Vous pouvez préciser le format de fichier à afficher dans la boîte de dialogue :

Code:
Application.Dialogs(xlDialogSaveAs).Show "Liste", _
  IIf(Val(Application.Version) < 12, xlNormal, 56)
Edit : salut Iznogood1

A+
 
Dernière édition:
Re : enregistrer une feuille active en .xls

Re,

Je viens de tester sur mon vieil ordi avec Excel 2003 : l'argument pour le format crée un bug.

Donc uniquement pour Excel 2007 et versions suivantes :

Code:
Application.Dialogs(xlDialogSaveAs).Show "Liste", 56
A+
 
Re : enregistrer une feuille active en .xls

Re,

Ah mais si ça marche sur Excel 2003 avec 1 au lieu de xlNormal, donc sur toutes versions :

Code:
Application.Dialogs(xlDialogSaveAs).Show "Liste", IIf(Val(Application.Version) < 12, 1, 56)
A+
 
Re : enregistrer une feuille active en .xls

Bonjour à vous 2 😎

merci d'avoir de votre temps pour me répondre.
Iznogood1 : ton code fonctionne bien, c'est ce que je recherche, sauf que le nom du fichier affiche classeur par défaut et je voudrais qu'il m'affiche Liste ou autre nom.

job75 : j'ai testé ton bout de code de fin avec If et il faut enregistrer 2 fois, c'est un double If ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
244
Réponses
7
Affichages
165
Réponses
10
Affichages
547
Réponses
5
Affichages
477
Retour