Hey Bonjour à tous,
Et voici mon problème de la semaine (et oui encore un !!):
J’ai un bouton dans un onglet de classeur excel qui
1- Enregistre le fichier automatiquement dans un certain répertoire avec un nom particulier
2- Qui exporte ce fichier créé au format PDF au même endroit
Sub ENREGISTRENTDEVIS()
Dim extension As String
Dim chemin As String, nomfichier As String
Dim style As Integer
Application.ScreenUpdating = False
ThisWorkbook.ActiveSheet.Copy
extension = ".xlsm"
chemin = "D:\FRED\Documents\TAFF\DEVIS\"
MsgBox ThisWorkbook.Path
nomfichier = Format(Date, "mm") & "-" & Range("E15") & "-" & Range("G7") & extension
With ActiveWorkbook
.ActiveSheet.DrawingObjects(1).Delete
.SaveAs Filename:=chemin & nomfichier
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & nomfichier & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End With
End Sub
J’ai deux "soucis"
1- Le fichier sauvegardé en PDF garde l’extension .xlsm (.xlsm.pdf) ??? C’est pas bien grave mais bon
2- Je voudrais qu’une fois le fichier PDF créé le fichier Excel soit supprimé ou alors carrément ne pas passer par la création du fichier Excel.
Je suis sûre que pour vous ce problème n’est qu’une formalité et je vous remercie à l 'avance de votre précieuse aide.
Sub ENREGISTRENTDEVIS()
Dim extension As String
Dim chemin As String, nomfichier As String
Dim style As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'ôte les evenements de confirmation
chemin = ThisWorkbook.Path & "\" 'ce classeur
nomfichier = Format(Date, "mm") & "-" & Range("E15") & "-" & Range("G7") 'sans l'extention
With ActiveWorkbook
.SaveAs Filename:=chemin & nomfichier
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & nomfichier & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End With
Application.DisplayAlerts = True 'remet les evenements de confirmation
End Sub
1- A cause de cette ligne : extension = ".xlsm" puis nomfichier = Format(Date, "mm") & "-" & Range("E15") & "-" & Range("G7") & extension >>> Il y a donc .xlsm dans le nom du fichier peu importe son format. Puis par la suite xlsm et pdf se suivent : vb ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ chemin & nomfichier & ".pdf"
2- A essayer :
Sub test()
Dim chemin As String, nomfichier As String
Dim style As Integer
Application.ScreenUpdating = False
ThisWorkbook.ActiveSheet.Copy
chemin = "C:\Users\"
'MsgBox ThisWorkbook.Path
nomfichier = Format(Date, "mm") & "-" & Range("E15") & "-" & Range("G7")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & nomfichier & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
ActiveWorkbook.Close savechanges:=False
Application.ScreenUpdating = True
End Sub
Merci de ton aide.
La macro fonctionne pour ce qui est de la création du PDF sans le problème de l’extension mais le fichier excel créé existe toujours, il n’est pas supprimé.
Merci de ta réponse.
La macro ne fonctionne pas, j’obtiens une erreur d’exécution sur cette partie
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & nomfichier & « .pdf », Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Sub ENREGISTRENTDEVIS()
Dim extension As String
Dim chemin As String, nomfichier As String
Dim style As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'ôte les evenement de confirmation
chemin = "D:\FRED\Documents\TAFF\DEVIS" & " \ " 'à modifier"
nomfichier = Format(Date, "mm") & "-" & Range("E15") & "-" & Range("G7") 'sans l'extention
With ActiveWorkbook
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & nomfichier & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End With
Application.DisplayAlerts = True 'remet les evenement de confirmation
End Sub
Bah celui que j’ai c’est celui qui est créé par la première partie de la macro. Mais j’ai trouvé, il suffit de supprimer la ligne
".SaveAs Filename:=chemin & nomfichier" avant le Export
de la macro et ça marche !!!