J'ai la sous-routine suivante (dans module10).vba assignation d'une sous-routine à une variable
Sub varWorksheet(wksht As String)
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(wksht)
Set ws = Nothing
End Sub
Je veux être en mesure de passer cette sous routine comme une référence à une variable avec quelque chose comme ça plutôt que d'avoir à déclarer explicitement dans chaque routine:
Set ws = module10.varWorksheet("Sheet1")
Je reçois erreur de compilation -> fonction attendue ou variable.
Vous ne pouvez pas faire cela directement, il n'y a pas de type fonctionnel/délégué dans VBA (et si votre tentative était une invocation, pas une affectation). Peut-être envisager d'encapsuler la logique dans une classe http://www.cpearson.com/excel/classes.aspx –