Bonjour,


J'ai une question sur le code VBA que je suis en train d'écrire.
j'ai met ce message ici car c'est pour moi plus un problème de structuration de mon code plutôt qu'autre chose.

Je suis actuellement en train d'écrire une procédure de ce genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Function Stock()
'copie du fichier squelette
FILE_MODELE = REP_MODELE & "squelette_stock.xls"
FILE_LOCAL = REP_OUT & "Stock Support_" & RecupMois(Now) & DatePart("yyyy", Now) & ".xls"
supp_fich (FILE_LOCAL)
Call FileCopy(FILE_MODELE, FILE_LOCAL)
'transfert dans le fichier Excel dans l'onglet Data
DoCmd.TransferSpreadsheet acExport, 8, "STOCK", FILE_LOCAL, True, "DATA"
Call traitement_Excel
End Function
Comme vous pouvez le constater, cette function (appelée par un bouton sur un formulaire) me permet d'extraire les données d'une requête dans un fichier Excel. Ensuite, je lance un traitement_Excel dont je vous passe les détails,car là n'est pas ma question

J'ai besoin d'utiliser ce style de fonction pas que pour el Stock, aussi pour mesurer par exemple l'activité, et sur d'autres services.

Du coup, je vais devoir répéter (en gros) cette fonction 10 fois suivant la requête pour mon fichier Excel.

Voici ma question (accrochez vous ) : il vaut mieux que j'écrive 10 fois ma même fonction en utilisant "Function Stock" ou "Function Act" (par exemple, ou il vaut mieux que je créé un Sub de ce genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
'copie du fichier squelette
Sub Creation(FileEntree As string,FileSortie as string,NomRequete as string)
FileEntree = REP_MODELE & "squelette_stock.xls"
FileSortie = REP_OUT & "Stock Support_" & RecupMois(Now) & DatePart("yyyy", Now) & ".xls"
supp_fich (FileSortie)
Call FileCopy(FileEntree, FileSortie)
'transfert dans le fichier Excel dans l'onglet Data
DoCmd.TransferSpreadsheet acExport, 8, NomRequete as string, FileSortie, True, "DATA"
Call traitement_Excel
End Sub
(je viens de faire ces lignes à l'arrache, donc regardez pas les fautes, c'est surtout pour vous donner une idée de ce que je pense faire).

Ensuite, j'appelle cette procédure genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Call Creation("FILE_MODELE","FILE_LOCAL","STOCK")
En faisant comme ça, j'ai l'impression d'optimiser mon code, mais est-ce que le traitement y sera gagnant aussi en faisant cela ?

En vous remerciant par avance pour vos réponses.