Non le remplissage de cellules par une fonction n'est pas possible, du moins pas directement. Peut etre sous 2007, pas fait l'essai.
La preuve, tu parles d'API. Or, une API, d'où son nom n'est pas natif à Excel.
Parcontre, tu peux, detecter une modification sur la cellule, si elle contient ta fonction, tu recuperes le resultat et en fonction tu t'occupes de tes cellules.
Exemple :
Une fonction toute bete qui renvoit une valeur d'un tableau.
Code :
- Function MonTableau(Element)
- 'Définit la taille du tableau et le type de données.
- Dim NomTableau(2) As String
-
- 'Alimente les éléments du tableau
- NomTableau(0) = "a"
- NomTableau(1) = "b"
- NomTableau(2) = "c"
-
- 'Affiche l'element du tableau
- MonTableau = NomTableau(Element)
- End Function
|
Donc si Element = 0 ca renvoit "a", Element = 1 ca renvoit "b" etc.
En A1 tu saisis : 0
En D2 tu saisis : =MonTableau(A1)
D2 renvoit bien "a"
Ensuite tu vas dans VBA, sur ta feuille :
Code :
- Private Sub Worksheet_Change(ByVal Target As Range)
- 'Si la formule contient "MonTableau", le nom de la fonction
- If InStr(1, Target.FormulaR1C1, "MonTableau", vbTextCompare) <> 0 Then
-
- 'code
- 'Ici un code a la con qui teste, si c'est "a" il met youpi dans la cellule d'a coté, en rouge.
- If Target.Value = "a" Then
- Cells(Target.Row, Target.Column + 1) = "Youpi"
- Cells(Target.Row, Target.Column + 1).Font.ColorIndex = 3
- End If
- End If
- End Sub
|
Donc en gros, tu entres ta fonction dans une cellule
Il calcule le resultat de la fonction
Et en fonction du resultat (dans cette meme cellule) il va mettre youpi dans la cellule d'a coté, en rouge.
Ca devrait te donner des pistes.
---------------
Soyez malin, louez entre voisins !