Copier, déplacer, supprimer des fichiers, dossiers via module

0/5 (27 avis)

Vue 26 405 fois - Téléchargée 2 234 fois

Description

Code qui permet de copier/déplacer/supprimer des fichiers ou des dossiers (et tout ce qu'il contient)
Très simple d'utilisation, copiez simplement ce code dans un module et ajoutez-le dans votre projet.
Utilisez ensuite NomModule.une_des_fonctions pour travailler sur vos fichiers/dossiers
Ou téléchargez le module zippé

Source / Exemple :


Public Sub CopierDossier(Origine As String, Destination As String)
   Dim fs
   Set fs = CreateObject("Scripting.FileSystemObject")
       fs.CopyFolder Origine, Destination
   Set fs = Nothing

'Exemple : "C:\Dossier1", "C:\Dossier2\" Copiera Dossier1 dans Dossier2 ainsi que
           'tous les fichiers et dossiers contenus dans Dossier1
         ' "C:\Dossier1\*", "c:\Dossier2\" Copiera tout ce qui se trouve dans Dossier1
End Sub

Public Sub CopierFichier(Origine As String, Destination As String)
   Dim fs
   Set fs = CreateObject("Scripting.FileSystemObject")
       fs.CopyFile Origine, Destination
   Set fs = Nothing
   
'Exemple : "C:\Dossier\Fichier.ext", "C:\AutreDossier\Fichier.ext"
         ' *.ext ou *.* fonctionnent
End Sub

Public Sub CréerDossier(Destination As String)
   Dim fs
   Set fs = CreateObject("Scripting.FileSystemObject")
       fs.createfolder Destination
   Set fs = Nothing
       
'Exemple : "C:\Dossier\NouveauDossier"
End Sub

Public Sub DéplacerDossier(Origine As String, Destination As String)
   Dim fs
   Set fs = CreateObject("Scripting.FileSystemObject")
       fs.movefolder Origine, Destination
   Set fs = Nothing
       
'Exemple : "C:\Dossier1", "C:\Dossier2\" -> Déplacera Dossier1 dans Dossier2
End Sub

Public Sub DéplacerFichier(Origine As String, Destination As String)
   Dim fs
   Set fs = CreateObject("Scripting.FileSystemObject")
       fs.movefile Origine, Destination
   Set fs = Nothing
       
'Exemple : "C:\Fichier.ext", "C:\Dossier\" -> Déplacera Fichier.ext dans Dossier
         ' "C:\Fichier.ext", "C:\Dossier\AutreNom.ext -> Déplacera et renomera
End Sub

Public Sub SupprimerDossier(Destination As String)
   Dim fs
   Set fs = CreateObject("Scripting.FileSystemObject")
       fs.deletefolder Destination
   Set fs = Nothing
       
'Exemple : "C:\Dossier\Dossier_à_Supp" Supprimera Dossier_à_Supp
         ' "C:\Dossier\*" Supprimera tous les dossiers contenu dans Dossier
End Sub

Public Sub SupprimerFicher(Destination As String)
   Dim fs
   Set fs = CreateObject("Scripting.FileSystemObject")
       fs.deletefile Destination
   Set fs = Nothing
       
'Exemple : "C:\Dossier\Fichier_à_Supp.ext" Supprimera Fichier_à_Supp.ext
         ' *.ext et *.* fonctionnent
End Sub

Public Function VérifierLecteur(Lecteur As String)
   Dim fs
   Set fs = CreateObject("Scripting.FileSystemObject")
       VérifierLecteur = fs.DriveExists(Lecteur)
   Set fs = Nothing
       
'Exemple : ("C:") Vérifie si C: existe et renvoi Vrai ou Faux.
End Function

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_sergiooi Messages postés 53 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 7 octobre 2009
17 avril 2007 à 17:52
tu met dans ton module:
public sub CopierDossier (Origine as string, Destination as string)
dim fs
set fs = createObject("Scripting,FileSystemObject")
fs.copyFolder Origine, Destination
set fs = nohing
end sub

et tu appel la fonction sur ta feuille:
fs.copierDossier "C:\NVIDIA", "D:\NVIDIA"

Tu n'as pas besoin de modifier(dim fs as new fs)

Moi en tout cas ca marche #1
sebkill25 Messages postés 10 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 19 juin 2010
17 avril 2007 à 13:47
Je suis pas arrivé a le faire fonctionné... et la syntaxe n'est pas la même
Si le résultat est le même je préfère une sytaxe plus propre...
Et je l'execute pas depuis un module, j'en vois pas l'intérêt.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 75
17 avril 2007 à 13:44
pas compris ton commentaire...

c'est EXACTEMENT ce qui est fait là :


Public Sub CopierDossier(Origine As String, Destination As String)
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFolder Origine, Destination
Set fs = Nothing
End Sub
sebkill25 Messages postés 10 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 19 juin 2010
17 avril 2007 à 13:33
Beaucoup plus simple pour copier un répertoire :
Dim fso As FileSystemObject
Set fso = New FileSystemObject
fso.CopyFolder "c:\sources", "c:\oldsources", True
Set fso = Nothing

Où "c:\sources" et "c:\oldsources" peuvent être remplacés par des variables qui contienent un chemin sélectionné par exemple.

;)
sebkill25 Messages postés 10 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 19 juin 2010
17 avril 2007 à 12:34
Salut,
Voilà c'est exactement le code que je cherché mais j'arrive pas à le faire fonctionné.
J'ai créer le module et j'ai copier tout le code source dedans. (Il se nomme "FS" comme dans la source).
Ensuite le le clik d'un bouton j'ai inscrit :
Dim FS As New FS
FS.CopierDossier(c:\NVIDIA, d:\NVIDIA)
---------------------------------------
Erreur de compilation :
Attendu : Séparateur de liste ou )
---------------------------------------
J'ai donc modifié :
Dim FS As New FS
FS.CopierDossier("c:\NVIDIA", "d:\NVIDIA")
---------------------------------------
Erreur de compilation :
Attendu : =
---------------------------------------
Alors là je comprend pas ....
J'espère avoir été clair.
Merçi de votre aide

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.