Fonction pour parcourir un tableau

Résolu
sikasika Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   -  
sikasika Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   -
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 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
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   Statut Membre Dernière intervention   3
 
merci beaucoup ça m'a beaucoup aidé
0