Enregistrement en VBA

Bonjour à tous,

Je reviens encore vers vous pour un autre petit souci;

j'ai récupéré et adapté ce code mais je n'arrive pas à l'ouvrir avec xl.

Il s'ouvre systématiquement en PDF et je ne trouve pas l'erreur.

Quelqu'un aurait-il une idée.

Merci à tous.

Cdt.

Voici le code.

Sub Enreg_xl()
Dim LaDate$, Nom$, Rep$ 'Déclaration des variables
LaDate = Range("F5") & " " & Format(Now, "dd_mmmm_yyyy") 'Formatage de la date , du nom et de l'heure
Nom = "_" 'Nom de l'onglet à entregistrer
Rep = "D:\Mes Documents\Sauvegarde_xlsm\" ' Chemin du répertoire à adapter depuis votre PC
ActiveSheet.ExportAsFixedFormat Type:=xlTypexl, Filename:= _
Rep & LaDate & "_" & Nom & ".xl", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=1, OpenAfterPublish:=False 'enregistrement du fichier en xl
End Sub

Bonjour,

teste en modifiant ceci

.../... OpenAfterPublish:=True  .../...

Bonjour,

Est-ce que vous savez ce que vous voulez faire au moins ? Parce que vous multipliez les sujets plus ou moins similaires, ne retournez pas toujours vers ceux qui vous aident à chercher une solution et demandez du excel, du pdf...

Décidez vous et posez correctement votre besoin, sinon, ça pourra durer longtemps...

Bonjour M12,

Cdlt,

Et je ne crois pas qu'il y ait d'export typexl. Seulement en PDF et XPS...

Le code marche très bien en principe :

Sheets("nomdelafeuille").copy
'>>> ça copie la feuille dans un nouveau classeur
Activeworkbook.close savechanges:=true, filename:=cheminfichier
'>>> ça ferme et sauvegarde le fichier créé
Activeworkbook.saveas filename:=cheminfichier
'>>> ça enregistre le nouveau classeur (sans le fermer)

Je ne vois pas comment vous pourriez avoir plusieurs feuilles dans le nouveau classeur, à moins que vous ayez une option par défaut qu'il faudrait changer. Choisir de n'avoir qu'une seule feuille et non 3 dans un nouveau classeur.

Edit : Volet Fichier/Options/Général/Inclure ces feuilles : tapez 1.

Et au pire, ce petit code si vous n'y parvenez pas :

dim ws as worksheet

for each ws in activeworkbook.worksheets
    if ws.name <> "nomdelafeuille" then
        application.displayalerts = false
        ws.delete
        application.displayalerts = true
    end if
next ws

à mettre avant de fermer ou sauvegarder bien entendu...

Cdlt,

Merci à tous et bonne journée.

Cordialement.

Rechercher des sujets similaires à "enregistrement vba"