Ajouter une commande à une macro pour supprimer un fichier


#1

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.

Fred


#2

Bonjour,

Teste avec cette macro

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




#3

Bonjour,

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


Bonne journée


#4

Bonjour Mimi,

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é.

Fred


#5

Re, il est pas supprimé, car il n’a pas été créé :grin:


#6

Bonjour Jauster

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

Fred


#7

Mimi,

Bah si, il est créé. Je l’ai en XLS et en PDF dans mon répertoire ??!!


#8

celui que tu as en xlsx, c’est le tien, celui sur lequel tu as lancé la macro


#9

Re,

Teste ceci

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


#10

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 !!!

Une fois de plus, t’es un chef !:wink:

Merci encore

Fred


#11

Re,

Au passage, je n’avais effectivement pas précisé qu’il fallait adapter le chemin (C:…) à votre cas.
Normalement la macro devrait fonctionner ensuite.

J.