Bonsoir Florent, Jacques87, Charly2,
Florent, comme Charly2 essaie de te le dire, tu cherches à utiliser à tort une 'Function' au lieu d'une simple procédure 'Sub'. Les Functions sont destinées avant tout à renvoyer des valeurs et n'ont pas pour objet d'effectuer des traitements tel que des sélections de feuille, des modifications de cellules, etc... Même s'il est possible de manipuler des objets à l'intérieur d'une fonction, les procédures Sub sont plus adaptées pour ce rôle.
Par contre, tu peux très bien passer un argument à une procédure Sub comme tu le fais avec une fonction.
Sub MaMacro(Argument)
...
End Sub
Tu trouveras ci-joint un exemple simple utilisant la procédure suivante :
Sub goToFeuille(F As String)
Sheets(F).Activate
End Sub
Par ailleurs, il est normal que cette procédure Sub n'apparaisse pas dans la boite de dialogue Exécuter ou Affecter une macro. C'est le cas de toutes les procédures avec argument(s). Cela dit, même si elle n'apparait pas, tu peux très bien faire appel à cette sub en tapant dans la zone d'édition de cette boite de dialogue et en respectant la syntaxe suivante : 'MaMacro MonArgument' (c'est à dire le nom de la macro + un espace + le nom de l'argument attendu, et le tout compris entre 2 apostrophes). A noter que si l'argument attendu est de type String, ce dernier devra être compris entre 2 guillemets.
Cordialement, [file name=PourFlorent_20060107195446.zip size=6978]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/PourFlorent_20060107195446.zip[/file]