Bonjour

Il s'agit d'écrire une fonction VBA à appeler dans une formule de tableau Excel 2000

je connais à peine visual basic

j'ai besoin d'aide pour traduire en code VBA l'algorithme ci-après


1/ présentation

l'objectif est de "descendre" dans une ligne colonne par colonne la première valeur non nulle
touvée dans une des lignes précédentes en les remontant sur la même colonne.

exemple :
partant d'une cellule de ma ligne courante,
si la cellule est vide je récupère celle de la cellule du dessus (ligne précédente, même colonn)
et si cette cellule est vide je récupère celle du dessus
et ainsi de suite jusqu'à trouver une valeur non null
cette action s'arrête à plus haute ligne.

les lignes sont groupées sur les mêmes valeurs de colonnes tarticulières
(exemple 1 colonne identifiant, 1 colonne date, ...)

on voit aussi donc qu'il s'agit d'une traitement récursif.


2/ algorithme à travduire en VBA


récupvaleur(lig_courante, col_reference, col_exploree)

si cellule(lig_courante,col_exploree) pas null alors

//---une valeur est déjà sur la ligne courante
renvoit cellule(lig_courante,col_exploree)

sinon

si lig_courante = 1 alors

//---cas limite de la première ligne du tableau Excel
renvoit null

SINON

//---valeur prise sur le ligne précedente
//---groupée avec la ligne courante par une même valeur sur la colonne référence
si cellule(lig_courante-1,col_reference) = cellule(lig_courante,col_reference) alors

//---on recommence avec la ligne précédente
renvoit récupvaleur(lig_courante-1, col_reference, col_exploree)

sinon

//---on a atteint la plus haute ligne sans trouver de valeur
renvoit null

finsi

finsi

fini


3/ j'ai besoin aussi de savoir comment invoquer une telle focntion dans une formule excel
il faudra probablement l'inclure dans les fonction excel
mais comment faire ?

Merci pour votre aide