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

Soyez le premier à donner votre avis sur cette source.

Vue 23 295 fois - Téléchargée 2 148 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

sebkill25
Messages postés
10
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
19 juin 2010
-
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
sebkill25
Messages postés
10
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
19 juin 2010
-
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.

;)
Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
22 août 2018
53 -
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
-
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.
cs_sergiooi
Messages postés
53
Date d'inscription
vendredi 6 octobre 2006
Statut
Membre
Dernière intervention
7 octobre 2009
-
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
Commenter la réponse de thierrydelepine

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.