Microsoft 365 Save as xlsx

Jon1197

XLDnaute Nouveau
Bonjour,

Je suis un novice de chez novice en VBA et je voudrais souvegarder la feuille active en xlsx (une nouvelle à chaque fois, pas en remplaçant l'actuelle). le code ci-dessous en pdf fonctionne très bien mais dès que je chage le format en xlsx dans le code cela ne fonctionne plus.

ChDir _
"C:\XXXXXXXX\1_Cuisine\3_Recettes"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\XXXXXXXX\1_Cuisine\3_Recettes\1_Cuisine\3_Recettes\" & Range("A4").Value & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True


Egalement, connaissez vous le code pour pour enregistrer en PDF, donc le même code qu'en haut mais dans un fichier en fonction du nom d'une cellule (en l'occurence C2). Le chemin serait comme suit: (après 1_Fiche Recette = choix du dossier en fonction de la cellule C2

ChDir _
"C:\XXXXXXXX\1_Cuisine\3_Recettes\1_Fiche Recette"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\XXXXXXXX\1_Cuisine\3_Recettes\1_Cuisine\3_Recettes\\1_Fiche Recette" & Range("A4").Value & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

Merci d'avance pour votre aide la communauté :)

Jonathan
 

job75

XLDnaute Barbatruc
Bonjour Jon1197, bienvenue sur XLD,

Votre fichier étant enregistré avec l'extension .xlsm mettez cette macro où vous voulez dans VBA et exécutez-la :
VB:
Sub Sauvegarde()
Application.ScreenUpdating = False
ActiveSheet.Copy
With ActiveWorkbook
    .SaveAs ThisWorkbook.Path & "\Mon fichier " & Format(Now, "dd-mm-yyyy-hhmmss"), 51 'format xlsx
    .Close
End With
End Sub
Le fichier .xlsx est créé dans le même dossier.

A+
 

Jon1197

XLDnaute Nouveau
Bonjour Jon1197, bienvenue sur XLD,

Votre fichier étant enregistré avec l'extension .xlsm mettez cette macro où vous voulez dans VBA et exécutez-la :
VB:
Sub Sauvegarde()
Application.ScreenUpdating = False
ActiveSheet.Copy
With ActiveWorkbook
    .SaveAs ThisWorkbook.Path & "\Mon fichier " & Format(Now, "dd-mm-yyyy-hhmmss"), 51 'format xlsx
    .Close
End With
End Sub
Le fichier .xlsx est créé dans le même dossier.

A+

bonjour :) Merci, ça fait déjà longtemps que je suis tous vos conseils mais la je me suis dit faut s'inscire et aller plus loin.

Top pour le code, ça fonctionne et j'ai pu rajouter mon chemin et le nom désiré en fonction de la cellule. Merci.

une idée pour ça ?
Egalement, connaissez vous le code pour pour enregistrer en PDF, donc le même que ci-dessous mais dans un fichier en fonction du nom d'une cellule (en l'occurence C2). Le chemin serait comme suit: (après 1_Fiche Recette = choix du dossier en fonction de la cellule C2

ChDir _
"C:\XXXXXXXX\1_Cuisine\3_Recettes\1_Fiche Recette"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\XXXXXXXX\1_Cuisine\3_Recettes\1_Cuisine\3_Recettes\\1_Fiche Recette" & Range("A4").Value & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
 

Phil69970

XLDnaute Barbatruc
Bonsoir Jonathan, Job, Kiki

Pour le pdf :

Code:
Sub Creation_Recette_Pdf()
'Chemin demandé
'C:\XXXXXXXX\1_Cuisine\3_Recettes\1_Cuisine\3_Recettes\\1_Fiche Recette" & Range("A4").Value & ".pdf" _
' C:\XXXXXXXX\
'1 = Dossier ==> 1_Cuisine\
'2 = Dossier ==> 3_Recettes\
'3 = Dossier ==> 1_Cuisine\
'4 = Dossier ==> 3_Recettes\
'5 = Dossier ==> 1_Fiche Recette\
'6 = Nom du fichier ==> & Range("C2").Value & ".pdf"

'Vérification si un nom de recette existe
If Range("C2") = "" Then MsgBox "Pas de nom de recette !", vbCritical, "Enregistrement impossible !": Exit Sub

VarNomRecette = Range("C2")

Chemin = "C:\Users\" & Environ("UserName")

'1)     Verification si le dossier "1_Cuisine" existe sinon creation
Dossier = "1_Cuisine"
Chemin = Chemin & "\" & Dossier
If Dir(Chemin, vbDirectory) = "" Then MkDir Chemin

'2)     vérification que le sous dossier "3_Recettes" existe sinon creation
Dossier = "3_Recettes"
Chemin = Chemin & "\" & Dossier
If Dir(Chemin, vbDirectory) = "" Then MkDir Chemin

'3)     vérification que le sous dossier "1_Cuisine" existe sinon creation
Dossier = "1_Cuisine"
Chemin = Chemin & "\" & Dossier
If Dir(Chemin, vbDirectory) = "" Then MkDir Chemin

'4)     vérification que le sous dossier "3_Recettes" existe sinon creation
Dossier = "3_Recettes"
Chemin = Chemin & "\" & Dossier
If Dir(Chemin, vbDirectory) = "" Then MkDir Chemin

'5)     vérification que le sous dossier "1_Fiche Recette" existe sinon creation
Dossier = "1_Fiche Recette"
Chemin = Chemin & "\" & Dossier
If Dir(Chemin, vbDirectory) = "" Then MkDir Chemin

'6)     Création du fichier pdf
NFichier = Chemin & "\" & VarNomRecette & ".pdf"

'Création du fichier PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NFichier, Quality _
        :=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

MsgBox "La recette été enregitré." & vbCrLf & vbCrLf & "Ici ==> " & Chemin & vbCrLf & vbCrLf & _
"Sous le nom : " & VarNomRecette & ".pdf", 48, "Enregistrement recette en PDF ..."

End Sub

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 617
Membres
103 608
dernier inscrit
rawane