Vba Appel de fonction avec tableau
Fermé
batisto
-
26 avril 2011 à 19:12
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 27 avril 2011 à 11:58
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 27 avril 2011 à 11:58
A voir également:
- Vba Appel de fonction avec tableau
- Tableau croisé dynamique - Guide
- Appel anonyme - Guide
- Fonction si et - Guide
- Tableau ascii - Guide
- Tableau word - Guide
3 réponses
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
27 avril 2011 à 00:21
27 avril 2011 à 00:21
Bonjour
Je pense qu'il faut écrire comme cela :
C'est la fonction Ubound() qui donne la taille du tableau.
A+
Je pense qu'il faut écrire comme cela :
Function find_lowest(vecteur_prix() As Variant) Min = vecteur_prix(1) Index = 1 nb1 = UBound(vecteur_prix) For i = 1 To nb1 If vecteur_prix(i) < Min Then Min = vecteur_prix(i) Index = i End If Next i find_lowest = Index End Function
C'est la fonction Ubound() qui donne la taille du tableau.
A+
Merci Pilas pour ta réponse.
J ai essayé ta proposition, mais ca ne marche pas. J avais essaye quelque chose de semblable, mais j avais le meme probleme : vu que l argument est un variant, il n y pas besoin de preciser que c est un tableau avec les ().
Pour le ubound(), il ne marche pas sans doute egalement parce que c est un variant.
Et si je mets le code suivant, la fonction find_lowest ne marche pas :
Function find_lowest(vecteur_prix() As Double)
min = vecteur_prix(1)
index = 1
nb1 = UBound(vecteur_prix)
For i = 1 To nb1
If vecteur_prix(i) < min Then
min = vecteur_prix(i)
index = i
End If
Next i
find_lowest = index
End Function
J ai essayé ta proposition, mais ca ne marche pas. J avais essaye quelque chose de semblable, mais j avais le meme probleme : vu que l argument est un variant, il n y pas besoin de preciser que c est un tableau avec les ().
Pour le ubound(), il ne marche pas sans doute egalement parce que c est un variant.
Et si je mets le code suivant, la fonction find_lowest ne marche pas :
Function find_lowest(vecteur_prix() As Double)
min = vecteur_prix(1)
index = 1
nb1 = UBound(vecteur_prix)
For i = 1 To nb1
If vecteur_prix(i) < min Then
min = vecteur_prix(i)
index = i
End If
Next i
find_lowest = index
End Function
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
27 avril 2011 à 11:58
27 avril 2011 à 11:58
Bonjour,
C'est curieux car chez moi ça fonctionne.
Mais il faut bien sur que les types soit compatibles. C'est à dire que vecteur_prix et vecteur3 sont tous les deux en variant ou tous les deux en double.
Dans les deux cas ça marche chez moi avec l'exemple donné. Je suis en Excel 2003 mais je ne vois pas ce que ça change pour d'autres versions d'Excel
A+
C'est curieux car chez moi ça fonctionne.
Mais il faut bien sur que les types soit compatibles. C'est à dire que vecteur_prix et vecteur3 sont tous les deux en variant ou tous les deux en double.
Dans les deux cas ça marche chez moi avec l'exemple donné. Je suis en Excel 2003 mais je ne vois pas ce que ça change pour d'autres versions d'Excel
A+