Supprimer un fichier précédemment créer via une macro

Bonjour à tous,

Tout d'abord merci à toutes les personnes qui alimentent ce forum, il est très utile.

Je souhaite faire plusieurs actions avec une macro, les voici:

(Je pars d'un fichier "nom_fichier.xlsm")

1- enregistrer le fichier (nom_fichier.xlsm) sous format .xlsx

2- envoyer ce fichier par mail (nom_fichier.xlsx)

3- le supprimer

4- fermer excel

(Ouf ..! )

Par la suite j'aimerai lancer ce fichier à l'aide du planificateur de tâche de windows. Mais une chose après l'autre ...

Mon problème est le suivant :

Je n'arrive pas à supprimer le fichier ".xlsx". J'ai regardé attentivement le forum et voici mon code VBA

Sub Macro1()

Application.DisplayAlerts = False
Dim wb As Workbook
Dim Fichier As String

Fichier = ThisWorkbook.FullName                     ' fichier comprend le chemin + nom fichier avec .xlsm (FullName)
Fichier = Left(Fichier, Len(Fichier) - 4) & "xlsx"  ' remplace l'extension par .xlsx exigée dans la fileformat
With ActiveWorkbook
    .SaveAs Filename:=Fichier, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False  'syntaxe trouvée à partir de l'enregistreur de macro
End With
Application.DisplayAlerts = True

End Sub

Sub envoi_mail()
Application.DisplayAlerts = False

   Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .to = "blabla@hotmail.com"
        .CC = ""
        .BCC = ""
        .Subject = "envoi fichier nom_fichier"
        .Body = "voici le fichier nom_fichier"
        .Attachments.Add ActiveWorkbook.FullName
        'You can add other files also like this
        '.Attachments.Add ("C:\test.txt")
        .Send   'or use .Display
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
    Application.DisplayAlerts = True

    End Sub

Sub supprimerFichier()
Application.DisplayAlerts = False

'Supprimer le fichier

Application.Quit
ActiveWorkbook.Close
Application.Workbooks("Nom_fichier.xlsx").Close
Set fso = CreateObject("Scripting.FileSystemObject")
src = "c:\test"
Kill (src & "Nom_fichier.xlsx")

    Application.DisplayAlerts = True
End Sub

Merci de vos réponses

Cordialement,

Nicolas

src = "c:\test"

Kill (src & "\Nom_fichier.xlsx")

merci de votre réactivité!

J'ai déjà essayé cette commande et elle ne fonctionne pas. Est ce que la provenance du fichier a une incidence ? Parce que mon fichier est sur le réseau. (je suis sur que personne d'autre utilise le fichier)

src = "Réseau:\\Srv01\sous dossier\sous dossier\sous dossier"
Kill (src & "\nomfichier.xlsx")

Nicolas

src = "\\Srv01\sous dossier\sous dossier\sous dossier"

Kill (src & "\nomfichier.xlsx")

Non cela ne fonctionne toujours pas

Bon cela ne m'étonnerais pas que tu aies mal écrit ton chemin ... Vérifie.

Merci de la confiance ! En faisant un copier/coller du chemin j'ai peu de risque de me tromper, mais au cas où j'ai revérifié et je n'ai pas fait d'erreur.

il faut mettre le bon nom de fichier avec les / au bon endroit et tout vois tu pas comme dans les codes que tu as écris. Si tu as les droits d'écriture sur le disque aucune raison que ça ne marche pas.. Teste en local

Kill chemin

Oui oui je comprend bien, quand j'ai écris "src = "\\SRV00\sous dossier\sous dossier" je remplace bien les noms des sous dossiers par leur vrai nom.

Malheureusement je ne peux pas tester en local, car tous les fichiers sont en réseau. Je pense que c'est de cela que vient le problème.

Tu peux créer un fichier en local à la mano sur ton bureau et le killer voir si cela marche par la suite il suffira de changer le chemin d'accès

cette commande fonctionne bien. J'ai créé un fichier manuellement, puis jai demandé à la macro de le supprimer en faisant ce code.

Sub Macro1()
src = "\\SRV00\RedirectedFolders\nicolas\Desktop"
Kill (src & "\fichier1.xlsx")
End Sub

J'ai effectué les mêmes commandes sur la macro originale mais rien à faire... peut être que ça ne marche pas car j'ai précédemment demandé à la macro de créer ce même fichier (conflit entre les deux commandes .. ?)

Il faut bien sûr le fermer d'abord.

Je pense avoir compris mon problème. La commande kill ne peut être effectué si le fichier est toujours actif. Parce qu'en fait la macro transforme mon fichier xlsm en xlsx. ensuite je lui demande de supprimer le fichier sur lequel elle travaille...

Donc faut que je me débrouille pour fermer ce fichier et ensuite lancer kill. Je pensais à ca:

 ActiveWorkbook.Close
    Application.Workbooks("analyse des commandes1.xlsx").Close
    ActiveWorkbook.Close
    Application.Workbooks("analyse des commandes1.xlsx").Close

Mais çà ne fonctionne pas

Solution trouvée :

  • jai créé une macro sur mon fichier de base qui effectue les actions souhaitées (changement du fichier de base xlsm en xlsx; envoi un mail; fermeture du fichier)
  • jai créé un second fichier avec macro : supprime le fichier xlsx.

Merci

Rechercher des sujets similaires à "supprimer fichier precedemment creer via macro"