Bonjour à tous,
"1) je croyais que par défaut quand on écrivait Function calcul (a as double, b as double) as double VBA comprenait par défaut
Function calcul (Byref a as double, ByRef b as double) as double. C'est faux ou pas ?"
>>> Oui, en effet, je crois que ByRef est le mode de transmission par défaut. Parfois, on explicite seulement pour mettre en évidence.
2
quand on déclare :
Function calcul(a As Double, b As Double, c As Double, ByRef res1 As Double) As Double
res1 = a - c
calcul = a + b
End Function
comment on applique la fonction calcul et on utilise l'argument res1 dans le programme principale puisque res1 est calculé dans la fonction
on fait calcul (a,b,res1) ou il faut donner une valeur à res1 en écrivant calcul (a,b,0) en ayant déclarer res1 comme une variable globale ?
>>> Ici, dans la fonction, res1 est destiné à l'écriture, à ce qu'on lui affecte un résultat. Il n'est pas passé en lecture comme les arguments classiques.
3 ) et notamment quand on appelle la fonction dans une feuille excel comment on écrit la fonction dans la cellule ?
>>> Sur la feuille excel, impossible d'utiliser res1 (en tout cas aisément).
Avec la fonction de type Variant, on a une fonction personnalisée qui renvoie une matrice.
=Calcul(A1,B1,C1) '>>> renvoie {3;6} par exemple
On peut alors facilement choisir l'élément qui nous intéresse :
=INDEX(Calcul(A1,B1,C1);2) '>>> renvoie 6
Cdlt,