Comment manipuler les fichiers positionnés sur votre disque dur, à l’aide
du langage VBA. L’utilisation de l’objet "FileSystemObject" va nous permettre de régler cette
question. Dans cet exemple nous allons pouvoir :
- Supprimer un fichier
- Renommer un fichier
- Déplacer un fichier
- Ouvrir un fichier
Évidement pour pouvoir réaliser ces actions il faudra au préalable
trouver sur le disque le fichier qui nous intéresse. Donc rechercher un fichier
sera notre première action.
Nous saisissons dans la zone de texte "TextBox1" du
formulaire "UserForm2" le nom d’un fichier Excel (sans l’extension),
puis nous cliquons sur le bouton "Find". Le système parcours ici tous
les sous-dossiers d’un dossier "Blog" d’un disque "E:".
Si le fichier est localisé ; son Path
(chemin d’accès) va s'afficher dans la zone de label "Label1" située
en dessous, l'utilisateur choisira alors l'action qu'il désire accomplir.
Il sera nécessaire de créer 2 objets, un pour l'accès au système de
fichiers Windows (scripting.FileSystemObject)
et un autre objet de type dossier pour récupérer notre dossier racine par la méthode GetFolder. Vous noterez également
l'emploi de la fonction Dir() de la
classe FileSystem qui permet la récupération du nom du fichier dans une chaîne
de type Path ou une chaîne vide en cas d'absence. Le reste du code ne semble pas poser de difficultés.
'-----------------------------------------------------------------------
Option Explicit
Public fichier As String
Public fichier2 As String
Public Flder As Object
Public comp As String
Const boite = vbOKOnly +
vbInformation
Const titre = "www.olivier
- picot.fr"
'-----------------------------------------------------------------------
Private Sub
Find_Click()
Dim fso As Object
Dim Dossier As Object
Dim LeDossier As String
Dim chemin As String
comp = TextBox1.Value
LeDossier =
"E:\Blog"
Set fso =
CreateObject("scripting.FileSystemObject")
Set Dossier = fso.getfolder(LeDossier)
'Examen de chaque sous dossier du dossier E:\Blog
For Each Flder In
Dossier.subfolders
fichier = Dir(Flder.Path
& Application.PathSeparator & comp & ".xlsx")
If fichier <> "" Then 'donc si on l'a trouvé
chemin = Flder.Path &
Application.PathSeparator
Exit For
End If
Next Flder
If fichier = "" Then
MsgBox "le fichier
n'existe pas", vbInformation + vbOKOnly, "ERREUR"
Else
fichier = chemin & comp
& ".xlsx"
UserForm2.Label1.Caption = fichier
End If
End Sub
'-----------------------------------------------------------------------
Private Sub
Ouvrir_Click()
Workbooks.Open fichier
MsgBox "Fichier ouvert", boite, titre
End Sub
'-----------------------------------------------------------------------
Private Sub Renommer_Click()
fichier2 = Flder.Path & Application.PathSeparator & "copie_"
& comp & ".xlsx"
Name fichier As fichier2
MsgBox "Fichier
rennomé", boite, titre
End Sub
'-----------------------------------------------------------------------
Private Sub
Supprimer_Click()
Kill fichier
MsgBox "Fichier
supprimé", boite, titre
End Sub
'-----------------------------------------------------------------------
Private Sub
Deplace_Click()
Name fichier As
"E:\SNCF\" & comp & ".xlsx"
MsgBox "Fichier déplacé", boite, titre
End Sub
'-----------------------------------------------------------------------
Private Sub
sortir_Click()
UserForm2.Hide
End Sub
Vous pourrez très facilement adapter cet exemple,
Merci de votre attention