Suppression d'un fichier excel par macro

Résolu
Bonjour,
Je souhaiterais supprimer un fichier excel lors de la fermeture d'un autre fichier excel.
Je rencontre des soucis car le fichier que je cherche à supprimer n'existe pas toujours, et il n'est pas toujours ouvert.
Voilà ce que j'ai tenté :

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Application.DisplayAlerts = False
        Workbooks("fichier.xls").Close
        Kill "fichier.xls"
    Application.DisplayAlerts = True

End Sub

Je vous remercie par avance.
Configuration: Windows 2000
Internet Explorer 5.5

1 réponse

  1. Est ce que ceci te conviendrait ?

    Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Application.DisplayAlerts = False

    ' Ferme le classeur s'il est ouvert
    For Each classeur In Workbooks
    If classeur.Name = "Fichier.xls" Then
    classeur.Close
    End If
    Next

    ' Supprime le fichier Fichier.xls
    On Error Resume Next
    Kill "fichier.xls"
    On Error GoTo 0

    Application.DisplayAlerts = True

    End Sub
    0
    1. parfait
      merci beaucoup
      0
    2. Bonjour,

      J'ai un nouveau problème : le classeur que je cherche à fermer et supprimer est créé et nommé selon la macro suivante :

       ActiveSheet.Select
          ActiveSheet.Copy
          ChDir "C:"
          ActiveWorkbook.SaveAs Filename:= _
              "C:\classeur " & ActiveSheet.Range("A1").Value & ".xls", FileFormat:=xlNormal, _
              Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
              CreateBackup:=False


      Cette macro se trouve dans le classeur qui commande la fermeture et la suppression de "classeur (A1).xls".
      Le nom de fichier "classeur (A1).xls" est donc variable.
      Je ne sais pas comment réinjecter ce nom dans la procédure "Private Sub Workbook_BeforeClose(Cancel As Boolean)" décrite ci-dessus.

      En espérant avoir été clair.
      0
    3. @rgtahitiIl suffit de changer "fichier.xls" par "classeur" & Range("A1").value & ".xls" dans Workbook_BeforeClose, non ?
      0