Bonjour a tous,
Je suis débutant en VBA, et je cherche a créer une fonction simple de boucle, a utiliser dans un de mes fichiers.
L'idée est la suivante.
4 variables : un concaténé, une date, une quatité, et une plage de recherche.
Pour chaque cellule de plage de recherche
Si le concaténé est égal a la valeur de la cellule
Si la date (située 5 colonnes a droite de la plage de recherche) est inferieure a la date initiale
Si la quantité (7 colonnes a droite de la plage de recherche) est superieure ou egale a la quantité initiale,
Alors on garde en mémoire la date et la quantité
Et quoiqu'il arrive, on passe a la cellule suivante dans la plage.
Et on renvoie la date gardée en memoire.
J'ai essayé de faire un premier jet. Ca donne ça:
Cependant excel me dit que cela ne fonctionne pas, bien qu'il reconnaisse la fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Function DateLotPlusAncien(CCT As String, DteLot As Integer, Qte As Double, Rge As Range) As Integer Dim DteLotMax, Qtemax As Integer DteLotMax = DteLot Qtemax = Qte For Each cell In Rge If cell.Value = CCT Then If Cells(cell.Row, cell.Column + 5).Value < DteLotMax Then If Cells(cell.Row, cell.Column + 7).Value >= Qtemax Then Qtemax = Cells(cell.Row, cell.Column + 7).Value DteLotMax = Cells(cell.Row, cell.Column + 5).Value End If End If End If Next cell DateLotPlusAncien = DteLotMax End Function
Quelqu'un pourrait m'aiguiller sur le chemin a prendre?
Merci d'avance.
Cordialement,
Tinku
Partager