Fonction pour parcourir un tableau

Résolu/Fermé
sikasika Messages postés 71 Date d'inscription vendredi 14 décembre 2012 Statut Membre Dernière intervention 10 juillet 2014 - 22 oct. 2013 à 10:48
sikasika Messages postés 71 Date d'inscription vendredi 14 décembre 2012 Statut Membre Dernière intervention 10 juillet 2014 - 22 oct. 2013 à 17:25
Bonjour,
j'ai besoin d'aide s'il vous plaît

J'ai besoin de créer une fonction qui me permettra de diviser un nombre sur un autre
mais ces nombres là je dois les trouver sur un tableau sous des conditions.

Là ou je bloque: comment parcourir un tableau de deux ligne jusqu'à pouvoir trouver un nombre donné et sélectionner la valeur de la cellule correspondante dans la deuxième colonne
j'ai essayé avec ça :
Function kPx(x As Double, k As Double, Tble_mortalité As Range) As Double

Application.Volatile

Dim i, j As Integer
Dim lf, lx As Double


For i = 1 To 112
If Range("A&i").Value <> x Then

i = i + 1
Else
lx = Range("B&i").Value


End Function



je n'ai pas encore terminer le code mais j'aimerai juste savoir si c'est correct sur tout au niveau de Range ("A&i").value , est ce que ça va parcourir le tableau en comparant le x avec les valeurs de toutes les cellules de la première colonne et s'arrêter quand il trouvera ll'égalité
A voir également:

2 réponses

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
Modifié par melanie1324 le 22/10/2013 à 10:56
Bonjour,

Non ca ne s'arrêtera pas quand ca sera terminé, pas avec ton code. Ton code ne s'arrêtera que lorsqu'il aura parcouru les 112 lignes. Mais il faut le modifier comme suit :

Function kPx(x As Double, k As Double, Tble_mortalité As Range) As Double

Application.Volatile

Dim i, j As Integer
Dim lf, lx As Double


For i = 1 To 112
If Range("A"&i).Value <> x Then

i = i + 1
Else
lx = Range("B"&i).Value


End Function


Si tu veux que ta fonction s'arrête dès que ta valeur est trouvée :

Function kPx(x As Double, k As Double, Tble_mortalité As Range) As Double

Application.Volatile

Dim i, j As Integer
Dim lf, lx As Double

i = 1
do while Range("A"& i).Value <> x Then and i <112 'tant que la cellule de la colonne A et de la ligne i est différente de x et i inférieur à 112
i = i + 1
loop 'on passe à la ligne suivante

if i <> 112
lx = Range("B"& i).Value
end if


End Function
0
sikasika Messages postés 71 Date d'inscription vendredi 14 décembre 2012 Statut Membre Dernière intervention 10 juillet 2014 3
22 oct. 2013 à 17:25
merci beaucoup ça m'a beaucoup aidé
0