Fonction pour une matrice

Bonjour,

Je voudrais si possible avoir une explication de cette formule :

Public Function laMatrice(lesNoms As Range, couvInt As Byte, innov As Single) As String

Application.Volatile

For Each n In lesNoms

If n.Offset(0, 1) = couvInt And n.Offset(0, 2) = innov Then ch = ch & n.Value & ", "

Next n

If Len(ch) > 0 Then laMatrice = Mid(ch, 1, Len(ch) - 2)

End Function

Merci d'avance

Bonjour,

Il s'agit d'une procédure de type Function destinée à être utilisée comme fonction de feuille de calcul.

Elle est déclarée Public, ce dont on peut se dispenser car en VBA toutes les procédures sont publiques par défaut. Elle est appelée en lui passant 3 arguments obligatoires : une plage de cellules dont on testera les valeurs des 2 colonnes situées immédiatement à sa droite pour en retenir les valeurs correspondant à des critères relatifs au contenu de ces deux colonnes, un 2e argument de type Byte (nombre de 0 à 255) et un 3e de type Single (décimal en simple précision).

La fonction renverra une valeur texte (chaîne) constituée des valeurs de la plage passée en premier argument correspondant aux critères, séparés par des virgules.

La fonction sera recalculée lors des recalculs d'Excel : Application.Volatile.

Compte tenu de sa construction (absence de vérification de la conformité des arguments passés), il faudra veiller à ce que la plage passée en argument soit une plage verticale sur une colonne. Si pour chaque cellule de la plage, la valeur de la 1re cellule à sa droite est égale à l'argument 2 et si la valeur de la 2e cellule à sa droite est égale à l'argument 3, on récupère la valeur pour la lister en résultat...

La finition est un peu bâclée : variables n et ch non déclarées dans la procédure...

Cordialement.

Rechercher des sujets similaires à "fonction matrice"