• Initiateur de la discussion Initiateur de la discussion Eric
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Eric

Guest
Hello,

j'ecris une fonction utilisant un incertain nombre de paramètres :

Function Lagrange2D(X As Single, Y As Single, ParamArray Points()) As Single

J'ai besoin de connaitre le nombre exact de paramètres passés........
(X,Y + nombre de Points()) pour traiter la fonction.

merci d'avance pour la solution ............ Eric.
 
Voici un exemple pour tester les valeurs passés en ParamArray. Les paramètres de type Tableau sont eux-mêmes détectés.

Option Explicit
'Ti

Function TestParams(X As Single, Y As Single, ParamArray Points()) As Single
Dim Boucle As Integer, NbElts As Integer, NbArrays As Integer
Dim LimiteInf As Integer, LimiteSup As Integer

NbElts = UBound(Points) - LBound(Points) + 1
MsgBox "Points contient " & NbElts & " valeurs"
For Boucle = LBound(Points) To UBound(Points)
If IsArray(Points(Boucle)) Then
'je me limite ici à détecter les tableaux à une seule dimension !
NbElts = UBound(Points(Boucle)) - LBound(Points(Boucle)) + 1
LimiteInf = LBound(Points(Boucle))
LimiteSup = UBound(Points(Boucle))
MsgBox "Argument " & Boucle + 1 & " : Tableau de " & NbElts & " éléments" & _
vbCr & "limite inférieure : " & LimiteInf & _
vbCr & "limite supérieure : " & LimiteSup
Else
MsgBox "Argument " & Boucle + 1 & " : variable de type " & TypeName(Points(Boucle))
End If

Next Boucle
End Function
'J 'ai besoin de connaitre le nombre exact de paramètres passés........
'(X,Y + nombre de Points()) pour traiter la fonction.


Sub TestParamArray()
'tt est une variable de type Variant initialisé par un Array
'ff est un tableau à 1 dimension
Dim tt, ff(1 To 3) As Single
tt = Array(1, 2, 3, 4, 5, 6)
TestParams 2, 3, tt, "test", #3/3/2021#, 6.2, ff
End Sub
 
Petite Démo très efficace, grace à laquelle j'ai pu réaliser ma fonction (utilisation de UBound() et LBound()), avec "cerise sur le gateau" table multi-dimensionnelle.

Concrêtement, les Points() correspondent aux valeurs X,Y,Z de points connus d'une fonction quelconque et inconnue.
X et Y sont les coordonnées d'un nouveau Point dont on estime par notre fonction la valeur Z, en utilisant les Points() connus.

Il etait donc intéressant de passer à notre fonction les Points() de manière déjà structurée PX(),PY(),PZ(), facilitant ainsi leur utilisation.

Merci à "Ti" & bonne continuation à tous .......... Eric.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
334
Retour