Passer une fonction en paramtre
Bonjour,
Je suis débutant et je cherche à faire quelque chose qui m'avait l'air d'être simple mais qui est fait un peu plus compliqué (apparemment).
J'ai une sub qui fait une boucle sur tous les fichiers contenus dans un dossier et ses sous-dossiers.
J'aimerais pouvoir passer une sub à effectuer pour chaque fichier. (j'ai l'impression qu'il faut utiliser des delegates mais je comprend pas comment ça fonctionne)
Par exemple à un moment dans mon code j'aimerais juste compter le nombre de fichiers d'un certain type, à un autre agir sur ces fichiers.
Certes je pourrais mettre tous les noms de fichier et leur chemins dans un array mais juste pour m'améliorer j'aimerais réussir à passer la sub.
Peut-être ne suis-je pas très clair, je vous met donc un morceau de code "rêvé"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Sub VersDebugPrint(NomDeFichier As String)
Debug.Print(NomDeFichier)
End Sub
Sub VersMsgbox(NomDeFichier As String)
MsgBox(NomDeFichier)
End Sub
Sub Main()
Call ListeDesFichier(VersDebugPrint)
Call ListeDesFichier(VersMsgbox)
End Sub
Sub ListeDesFichier(maSub As sub)
'blablabla
For Each ficher In ListeDesFichier()
maSub(fichier)
Next
'blablabla
End Sub |
Merci d'avance à ceux qui auront pris le temps de me lire,
Et encore plus merci à ceux qui prendraient le temps de me répondre :-)
En vous souhaitant un bon dimanche :-)