2017-10-11 2 views
0

Voici mon code actuel:VBA Enregistrer le fichier daté actuel, mais supprimer les fichiers plus anciens avec le même nom mais une date plus ancienne?

Dim strDestinationFile As String 
Dim The_file As String 
MyOldName = WHAT CAN I PUT HERE <-- 
MyNewName = strDestinationFile 

Sheets("NAME OF SHEET").Select 
Range("I2").Select 

The_file = ActiveCell.Value 

strDestinationFile = "FILE PATH NAME" 
Sheets("NAME OF SHEET").Select 
ActiveWorkbook.SaveAs Filename:=strDestinationFile 
Kill MyOldName 

Est-ce que ce travail si je saisis ou désigne le bon chemin et ce que je veux supprimer dans la « MyOldName = » section? Fondamentalement, j'ai un VBA que même la feuille avec la date la plus actuelle (par exemple le nom de fichier: XXXX-10-11-17.xlsm) mais je peux avoir des fichiers précédents du même nom de début mais une date différente (par exemple: XXXX-10- 10-17) que je veux supprimer une fois celui-ci est enregistré.

Est-ce possible?

Nous vous remercions de l'aide

+0

Oui, c'est possible. Vous pouvez utiliser DIR() pour trouver le nom du fichier en utilisant un filtre avec le nom du fichier (sans date). Ensuite, vous pouvez utiliser la méthode DeleteFile de la bibliothèque FileSystemObject pour supprimer le fichier. – nbayly

+0

Désolé pas bien versé dans VBA, mais pourriez-vous me montrer dans le code ci-dessus si possible? – TheDude

+0

Si vous passez quelques heures par semaine à regarder cette série [Excel VBA Introduction] (https://www.youtube.com/playlist?list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5) sur Youtube, vous pourrez rapidement faire des choses incroyables. –

Répondre

0

Référence: MSDN Dir() Function

Voici un Dir() recherche de base avec correspondance de motif.

Const RootDir As String = "C:\Reports\" 
Dim MyFile, MyPath, MyName As String 

MyFile = Dir(RootDir & "*??-??-??.xlsx") 

Do While MyFile <> "" 
    ' Insert Code 
    MyFile = Dir() 
Loop 

Bien que n'étant pas une réponse complète, il devrait être suffisant pour vous aider à démarrer.