Supprimer ancien file auto incrémenté Excel

Bonjour, et merci pour votre participation à tous sur ce site.

Pour un fichier Excel dont nous sommes plusieurs à utiliser plusieurs fois par jour, j'ai créé via VB une commande qui m'incrémente automatiquement le nom du fichier ouvert dans "beforeSave" mais de ce fait je me retrouve rapidement à la fin de la journée avec une multitude de fichiers dans mon répertoire. (Ex : Fichier V1.xls, Fichier V2.xls, Fichier V3.xls, ... )

Mon souhait serait idéalement de ne garder dans mon répertoire que le tout dernier fichier incrémenté ; et ce en complétant ma macro déja existante sous Excel.

Y a t'il une solution? Pourriez-vous m'aider? Merci d'avance.
Configuration: Windows XP
Internet Explorer 6.0
Excel 2003

7 réponses

  1. J'avais trouvé ça entre temps et ça marche.

    ActiveWorkbookName = Name

    Dim rep As String
    Dim fich As String

    rep = "R:\Photo\Arret équipements Planning\" ' chemin répertoire
    fich = Dir(rep & "Planning W* V*.xls") ' Extrait la première entrée.
    Do While fich <> "" ' Commence la boucle.
    If fich <> Name And Right(fich, 6) <> "V" & Range("BF1") & ".xls" Then

    Kill rep & fich ' suppression des fichiers
    End If
    fich = Dir ' Extrait l'entrée suivante.
    Loop
    End Sub

    merci quand même, cependant dans la suite de mon prog, j'ai encore un accroc,
    je souhaite incrémenter de 1 une cellule "BF1", le pb c'est que la cellule s'incrémente jusqu'a 224 d'un seul coup
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    n = 1
    Range("BF1") = Range("BF1") + n
    End Sub

    Encore merci d'avance
    0
    1. Contributeur
      bonjour

      Je pense qu'il faut exclure ne fichier actif

      effectivement le suicide n'est pas autorisé car le classeur est bloqué à l'ouverture. Pour comparer
       If fich <> ActiveWorkbook.Name

      0
      1. Bonsoir,

        Comme convenu, quelques nouvelles.
        Les commandes répondent bien à mes attentes, le seul pb sur lequel je pietine depuis, c'est qu'il plante par ce qu'il essaye de supprimer le fichier sur lequel la macro s'excute elle même.
        Je pense qu'il faut exclure ne fichier actif
        j'ai essayé : If Right(fich, 6) <> ActiveWorkbook
        Mais chou blanc.
        Help please .
        0
        1. Bonjour,

          C'est vraiment super sympa, je me met au travail et vous informerez de l'avancement.
          Encore merci.
          0
          1. Contributeur
            bonjour

            Tu dois avoir à peu près la procédure avec ceci :
            Dim rep As String
            Dim fich As String
            rep = "c:\ton_répertoire\"             ' chemin répertoire
            fich = Dir(rep & "Fichier V*.xls")    ' Extrait la première entrée.
            Do While fich <> ""                   ' Commence la boucle.
                If Right(fich, 6) <> "xx.xls" Then
                    Kill rep & fich               ' suppression des fichiers
                End If
                fich = Dir                        ' Extrait l'entrée suivante.
            Loop
            

            à toi de voir le test à faire pour garder le bon fichier.
            0
            1. Bonsoir,

              Merci pour l'info, je vais essayer de bidouiller quelque chose dans ce style, après avoir cherché un peu plus d'info sur ces commandes Dir et la boucle à rédiger.
              Comme tu peux le deviner, j'ai souvent plagié des brides de commandes pour en arriver là.
              Si tu peux m'aider un peu plus en développant ton idée merci beaucoup.
              Grand merci.
              0
              1. Contributeur
                bonjour

                avec Dir("ton_répertoire\Fichier V*.xls") et une boucle avec Dir jusqu'à un nom vide tu obtiens les fichiers présents.

                ensuite avec kill chemin de fichier tu supprimes l'excédent.
                0