XL 2013 modifier code pour enregistrer en .xlsx

grisan29

XLDnaute Accro
bonjour a tous
j'ai ce code qui fonctionne très bien pour enregistrer le classeur actif en .xlsm et .PDF
mais au lieu d'enregistrer en .xlsm je le voudrais en .xlsx sans codes
Code:
Private Sub CommandButton1_Click()
Dim NomFicXL As String, CheminXL As String
    Dim NomFicPDF As String, CheminPDF As String
    Dim DLig As Long
    Dim shp As Shape
    Dim Sht As Worksheet

    Set Sht = ThisWorkbook.Sheets("Feuil1")

    'sauvegarde a partir de la dernière ligne écrite
    DLig = Sht.Range("A" & Rows.Count).End(xlUp).Row
    Dim NomDeFichier As String
    'donner le nom au fichier
    NomDeFichier = Sht.Range("B11").Value & " - " & Sht.Range("D10").Value
    NomFicXL = NomDeFichier & ".xlsm"
    NomFicPDF = NomDeFichier & ".pdf"
    'pensez a chager le chemin
    CheminPDF = "D:\essai perso\facturePDF" & "\"
    CheminXL = "D:\essai perso\Facturexlsx" & "\"

    ' Sauvegarder le classeur actif dans le chemin et le nom determiné
 
    ActiveWorkbook.SaveAs Filename:=CheminXL & NomFicXL, _
                          Password:="", WriteResPassword:="", _
                          ReadOnlyRecommended:=False, CreateBackup:=False

    ' Exporter en PDF
    ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CheminPDF & NomFicPDF, Quality:= _
                                                   xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                                                   OpenAfterPublish:=False
 
    MsgBox "Votre sauvegarde porte la référence : " & " " & NomFicXL & vbCrLf _
         & "Le fichier PDF à été créé sous le nom : " & NomFicPDF
End Sub
je ne comprends pas ou le faire
quand je change
Code:
NomFicXL = NomDeFichier & ".xlsm"
en .xlsx
c'est ce bloc qui bug
Code:
ActiveWorkbook.SaveAs Filename:=CheminXL & NomFicXL, _
                          Password:="", WriteResPassword:="", _
                          ReadOnlyRecommended:=False, CreateBackup:=False

et aussi pourquoi la feuille active prends le nom de la sauvegarde
Pascal
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonjour Pascal :)

NomFicXL = NomDeFichier & ".xlsx" et il manque FileFormat:=

ActiveWorkbook.SaveAs Filename:=CheminXL & NomFicXL, FileFormat:=xlOpenXMLWorkbook,

.xlsm = xlExcel8 ou 56
.xlsx = xlOpenXMLWorkbook ou 51
 
Dernière édition:

grisan29

XLDnaute Accro
bonjour Lone-Wolf
merci de m'avoir dit ce que j'avais oublier mais je saisi pas pour xlsx
Code:
ActiveWorkbook.SaveAs Filename:=CheminXL & NomFicXL, FileFormat:=xlExcel8, _
mais si je mets ileFormat:=xlOpenXMLWorkbook ca bug avec xlm
 

Lone-wolf

XLDnaute Barbatruc
bonjour Lone-Wolf
merci de m'avoir dit ce que j'avais oublier mais je saisi pas pour xlsx
Code:
ActiveWorkbook.SaveAs Filename:=CheminXL & NomFicXL, FileFormat:=xlExcel8, _
mais si je mets ileFormat:=xlOpenXMLWorkbook ca bug avec xlm

Bein, c'est bien toi qui à dit ceci : mais au lieu d'enregistrer en .xlsm je le voudrais en .xlsx sans codes.

Là je ne suit plus. D'abord tu veux le sauvegarder : ActiveWorkbook.SaveAs Filename et maintenant tu ne veux plus??? :rolleyes:

Pour le chemin, tu peux ajouetr une variable : Dim Fichier As String

Fichier = "C:\Users\ etc.

Workbooks.Open(Fichier) - ActiveWorkbook.Sheets(1).Activate
 
Dernière édition:

grisan29

XLDnaute Accro
Bonjour Lone wolf

bien sûr que si, je veux sauvegarder mais à ta 1ère réponse j'ai pas réussi de suite a appliquer ta solution .xlsx voici comment il marche très bien MERCI



Code:
 Application.DisplayAlerts = False

    ActiveWorkbook.SaveAs Filename:=CheminXL & NomFicXL, FileFormat:=xlOpenXMLWorkbook, _

                          Password:="", WriteResPassword:="", _

                          ReadOnlyRecommended:=False, CreateBackup:=False

et voici comment j'ai mis 2 lignes de code qui ferme et re-ouvre le classeur, c'est peut être pas la meilleure mais fonctionne
Code:
Application.ScreenUpdating = False

  Application.EnableEvents = False

  'fermer et réouvrir le classeur source, pas trouvé autre solution pour éviter _

  que le classeur source garde le nom de la sauvegarde

    Workbooks.Open Filename:="C:\Users\Pascal\Desktop\test pdf et xlsx"

    'Sheets("Feuil1").Select

    ThisWorkbook.Close False


  Application.ScreenUpdating = True

  Application.EnableEvents = True


Pascal
 

Discussions similaires

Réponses
2
Affichages
286
Réponses
2
Affichages
233

Statistiques des forums

Discussions
312 199
Messages
2 086 159
Membres
103 147
dernier inscrit
tubaman