Bonjour,

Je créé un projet qui contient des Sub et des Function.
A chaque fois que j'ai besoin de faire appel à FileSystemObject je créé une nouvelle instance dans la sub ou function considérée.
Cela me paraît lourd comme procédé, aussi, j'ai cherché à créer/déclarer une seule instance de FileSystemObject en Public afin de pouvoir "appeler" les méthodes dans n'importe quel sub ou function sans avoir à créer l'instance. Mes tests sont restés vains, je n'y suis pas parvenu .
Dans mon projet j'ai déclaré 6 instances différentes de FileSystemObject et je n'ai pas encore fini. En voici un aperçu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Function fileExtension(fichier)
Set fs2 = CreateObject("Scripting.FileSystemObject")
fileExtension = fs2.GetExtensionName(fichier)
End Function
Function fileBaseName(fichier)
Set fs3 = CreateObject("scripting.filesystemobject")
fileBaseName = fs3.GetBaseName(fichier)
End Function
Function copyFile(fichierSource, destination)
Set fs4 = CreateObject("Scripting.FileSystemObject")
copyFile = fs4.copyFile(fichierSource, destination)
End Function
Y-a-t-il un moyen de ne faire qu'une seule déclaration de l'instance FileSystemObject et pouvoir utiliser cette instance dans n'importe quel "module" du projet ? qui pourrait donner quelque chose du style:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Public fs as New FileSystemObject
Function fileExtension(fichier)
fileExtension = fs.GetExtensionName(fichier)
End Function
Function fileBaseName(fichier)
fileBaseName = fs.GetBaseName(fichier)
End Function
Function copyFile(fichierSource, destination)
copyFile = fs4.copyFile(fichierSource, destination)
End Function
J'ai évidemment essayé cette solution avec et sans le New, mais le message d'erreur suivant est retourné:
Nom : 20160921_045_DIV_VBA-declaration-instance-filesystemobject_01.png
Affichages : 179
Taille : 5,9 Ko

Merci pour votre aide.
- crissc -