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![]()
Partager