Suppression d'un fichier excel par macro

Résolu
rgtahiti Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   -  
rgtahiti Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   -
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. onesdf Messages postés 375 Date d'inscription   Statut Membre Dernière intervention   120
     
    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. rgtahiti Messages postés 60 Date d'inscription   Statut Membre Dernière intervention  
       
      parfait
      merci beaucoup
      0
    2. rgtahiti Messages postés 60 Date d'inscription   Statut Membre Dernière intervention  
       
      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
      1. onesdf Messages postés 375 Date d'inscription   Statut Membre Dernière intervention   120 > rgtahiti Messages postés 60 Date d'inscription   Statut Membre Dernière intervention  
         
        Il suffit de changer "fichier.xls" par "classeur" & Range("A1").value & ".xls" dans Workbook_BeforeClose, non ?
        0
      2. rgtahiti Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   > onesdf Messages postés 375 Date d'inscription   Statut Membre Dernière intervention  
         
        ben si, mais ça me paraissait pas si évident que ça
        merci bien onesdf

        ps: j'ai une question sans réponse, est-ce que ça vous dérangerait d'y jeter un oeil ?
        http://www.commentcamarche.net/forum/affich 6522531 envoi de mail depuis excel
        0