Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…