[RESOLU] Enregistrer sous avec extension .xls

jsl72

XLDnaute Junior
Bonjour à tous.

Je souhaiterai enregistrer un fichier .txt ,mis en forme avec une macro, en fichier.xls

Le code ci-dessous fonctionne mais propose par défaut: Type: Texte (Séparateur:tabulation)

Sub impression_enregistrement()
'Définit la zone d'impression
Range("A12").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.PageSetup.PrintArea = ""
'Imprime la zone d'impression
ExecuteExcel4Macro "PRINT(1,,,1,,FALSE,,,,,,1,,,TRUE,,FALSE)"

'Active la boîte de dialogue enregistrer sous
Application.Dialogs(xlDialogSaveAs).Show

'Ferme le fichier sans enregistrer
ActiveWorkbook.Close SaveChanges:=False
End Sub

Pour éviter des erreurs d'enregistrement il faudrait qu'il me propose par défaut:
Type: Classeur Excel 97-2003

Voir détail dans la pièce jointe.

Est-ce dans le domaine du possible ?

Merci à ceux qui pourront consacrer un peu de temps sur ce sujet.

Cordialement.

Joël
 

Pièces jointes

  • enregistrer sous.PNG
    enregistrer sous.PNG
    80.6 KB · Affichages: 52
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Enregistrer sous avec extension .xls

Bonsoir jsl72, le forum,

J'avais gardé cette macro qu ipermet de faire ce que tu demandes (à adapter)

VB:
Sub Utilisation_FileDialog_Sauvegarde()
 Dim objSaveBox As FileDialog

 'Définit la fenêtre "Enregistrer sous"
 Set objSaveBox = Application.FileDialog(msoFileDialogSaveAs)

 With objSaveBox
 'Définit un nom par défaut dans le champ "Nom de fichier".
 .InitialFileName = "Nom fichier.xls"

 'Définit le type de fichier par défaut:
 '(la valeur 7 Permet de spécifier les classeurs "CSV" lorsque vous êtes dans Excel 2007)
 .FilterIndex = 7

 'Affiche la boîte de dialogue
 .Show
 'Enregistre
 .Execute
 End With

 End Sub

Suivant ta version d'Excel le 7 est à remplacer par le chiffre correspondant à la ligne du type de fichier. Par exemple pour Excel 2010 xls97-2003 est le 4

A+

Martial
 

jsl72

XLDnaute Junior
Re : Enregistrer sous avec extension .xls

Bonjour Martial,

Merci beaucoup pour cette avancée.

Effectivement le " 4 " permet bien d'obtenir le type de fichier Excel 2010 xls97-2003.

Cependant il serait souhaitable que la boîte de dialogue reprenne par défaut le nom du fichier en cours de traitement.

Je m'explique: si j'ai ouvert le fichier "Toto.txt", il faudrait que la boîte de dialogue propose par défaut "Toto", pour qu'après

enregistrement le nom du fichier soit "Toto.xls". voir pièce jointe.

En clair le nom de fichier n'est jamais le même d'une fois à l'autre.

Cordialement.

Joël
 

Pièces jointes

  • Toto xls.PNG
    Toto xls.PNG
    16.8 KB · Affichages: 47

jsl72

XLDnaute Junior
Re : Enregistrer sous avec extension .xls

Bonjour Martial,

Excuses moi de te déranger à nouveau.
Une fois adapté ton code fonctionne impécable.
J'utilise excel 2007 et le code VBA me propose un enregistrement au format Excel 97-2003 comme je le souhaite.

Dim objSaveBox As FileDialog
Set objSaveBox = Application.FileDialog(msoFileDialogSaveAs)
With objSaveBox
Nom_fichier = Left(ActiveWorkbook.Name, 9) & ".xls"
.InitialFileName = Nom_fichier
.FilterIndex = 4 'enregistrement en excel 97-2003
.Show
.Execute
End With

Cependant ce qui me gène c'est qu'une alerte " Vérificateur de compatibilité " m'indique: les fonctionnalités de ce classeur ne sont pas prises en charge etc..... voir pièce jointe.
Question:
Y aurait-il un complément, qui ajouté à mon code forcerait l'enregistrement sans que ce message apparaîsse ?

Merci pour ta réponse.
Bon week-end

Joël
 

Pièces jointes

  • Vérificateur de compatibilité.PNG
    Vérificateur de compatibilité.PNG
    37.3 KB · Affichages: 45
  • Vérificateur de compatibilité.PNG
    Vérificateur de compatibilité.PNG
    37.3 KB · Affichages: 47
  • Vérificateur de compatibilité.PNG
    Vérificateur de compatibilité.PNG
    37.3 KB · Affichages: 49

Discussions similaires

Statistiques des forums

Discussions
312 816
Messages
2 092 361
Membres
105 378
dernier inscrit
y07