XL 2013 Renvoyer 2 dans la cellule

candido57

XLDnaute Occasionnel
Bonjour,

J'ai un souci avec une macro
Je tape la formule suivante dans la cellule >> =@SI($H$1>=18;"";derligne(I13;"Taille"))

La macro doit aller chercher la dernière valeur 2 dans un tableau, mais si c'est 1 , il ne doit renvoyer, la cellule doit être vide.
Dans un tableau, je saisi un article dont la quantité et de 2 ou 1, si la dernière cellule du tableau est 2 , il renvoie 2 , si la dernière cellule est 1 , la cellule doit renvoyer vide.
Avec cette macro , il revoit 2 et ne prend pas la dernière cellule, elle n'est prise en compte, elle la saute et va chercher le dernier 2.
Que dois je rejouter pour qu'il prenne en compte la toute dernière cellule ?



Function derligne(valeur, article)

Application.Volatile

'initialisation
Carte = ThisWorkbook.Names("Carte").RefersToRange.Value 'numéro de carte trouvé dans les cellules nommées
Set tableau = Sheets("base").ListObjects("T_base") 'Définit le tableau
colquant = tableau.ListColumns("Quantité prise").DataBodyRange.Column ' numéro de la colonne ou trouver la date
colCarte = tableau.ListColumns("N° de carte + prénom").DataBodyRange.Column ' numéro de la colonne ou trouver le numéro de carte


For Each i In tableau.ListColumns(article).DataBodyRange 'pour chaque lignes de la colonne du tableau

'MsgBox i.Parent.Cells(i.Row, colcarte) & "/" & i & "/" & i.Parent.Cells(i.Row, colquant)
'trim supprime les espaces avant et après
'ucase convertit tout en majuscule

'si i = la valeur et que le numéro de carte correspond

If Trim(UCase(i)) = valeur And i.Parent.Cells(i.Row, colCarte) = Carte And i.Parent.Cells(i.Row, colquant) = 2 Then
derligne = 2

End If

Next

If derligne = 0 Then derligne = ""
End Function
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
315 246
Messages
2 117 750
Membres
113 300
dernier inscrit
faby79