Comment supprimer un fichier en utilisant VBA dans Excel ?
Pour supprimer un fichier Excel d’un dossier, vous pouvez utiliser deux méthodes différentes. La première méthode est l’instruction « Kill » qui prend le chemin du fichier pour faire référence au fichier que vous souhaitez supprimer. La deuxième méthode est l’objet FileSystemObject auquel est associée une méthode pour supprimer un fichier.
Pour utiliser ces codes, rendez-vous dans le VBE (Code Editor) depuis l’onglet développeur.
Supprimer un fichier à l’aide de VBA (fonction Kill)
La fonction Kill vous aide à supprimer un seul fichier ou plusieurs fichiers et à utiliser des caractères génériques pour supprimer plusieurs fichiers. Ci-dessous se trouve le code d’une ligne qui supprime le fichier du dossier que j’ai sur le bureau.
Kill "C:UsersDellDesktopSample Datafile-one.xlsx"
Ce code vous affichera une erreur si le classeur que vous avez spécifié pour supprimer n’existe pas.
Liens utiles : Exécuter une macro – Enregistreur de macros – Visual Basic Editor – Manuel de macros personnelles
Supprimer tous les fichiers d’un dossier à l’aide de VBA
Et si vous souhaitez supprimer tous les fichiers que vous avez dans un dossier, vous pouvez utiliser un caractère générique.
Kill "C:UsersDellDesktopSample Data*.xl*"
Supprimer un fichier à l’aide de FileSystemObject (Object)
L’objet système de fichiers vous permet d’accéder au système de fichiers de l’ordinateur. Vous pouvez en apprendre davantage à partir d’ici, mais maintenant, écrivons un code pour supprimer un fichier.
- Tout d’abord, vous devez déclarer les variables à utiliser dans le code en tant que classeur et FileSystemObject.
- Après cela, utilisez la fonction de création d’objet pour renvoyer le FileSystemObject en l’affectant à la variable FSO.
- Ensuite, attribuez le chemin à la variable « myFile » pour accéder au fichier que vous souhaitez supprimer.
- À la fin, utilisez la méthode « DeleteFile » (voir ceci) pour supprimer le fichier.
Code complet
Sub vba_delete_file()
Dim FSO
Dim myFile As String
Set FSO = CreateObject("Scripting.FileSystemObject")
myFile = "C:UsersDellDesktopSample Datafile1.xlsx"
FSO.DeleteFile myFile, True
End Sub
Disons que vous devez écrire un code qui peut vérifier un fichier (existe ou non) puis le supprimer. Voici le code dont vous avez besoin.
Sub vba_delete_file()
Dim FSO
Dim myFile As String
Set FSO = CreateObject("Scripting.FileSystemObject")
myFile = "C:UsersDellDesktopSample Datafile1.xlsx"
If FSO.FileExists(myFile) Then
FSO.DeleteFile myFile, True
MsgBox "Deleted"
Else
MsgBox "There's no workbook with this name."
End If
End Sub