c'est le application.run qui fait défaut. Si tu consulte l'aide de Excel ça dit:
La méthode Run renvoie ce que la macro exécutée renvoie.
donc tu dois traiter la valeur que run te retourne. Voici un exemple avec des paramêtres:
la function AB_Maladie:
Public Function AB_Maladie(Nom As String, Cause As String) As String
AB_Maladie = Nom & " a pris congé pour cause de " & Cause
End Function
et la procedure où tu appelles le run :
Private Sub CommandButton1_Click()
If ListBox1 = "A. Bouchard" And ListBox2 = "maladie" Then
Resultat = Application.Run("'c:\Fichier - Maître.xls'!AB_Maladie", ListBox1, ListBox2)
MsgBox Resultat
End If
End Sub
j'ai mis l'emplacement du fichier ( c:\ ) car Excel ne pouvait le trouver si ce dernier n'était pas ouvert.
si tu veux être sur de ne pas te tromper avec les majuscules, écris
If lcase(ListBox1) = "a. bouchard" And lcase(ListBox2) = "maladie" Then
-- Mar Fév 16, 2010 2:23 pm --
Oubli ce que je t'ai dis plus haut, tu peux très bien utiliser run sans t'occuper de ce qui peut retourner