Re je sais que tu n'as pas de problème, c'est normal car le fichier original à plus de données.
Je pensais qu'il y avait une astuce pour le booster.
En tout cas tu m'as bien aidé, Merci beaucoup.
Bonne journée
Bonjour Sousou,
J'ai essayé d'utiliser ta macro pour un autre fichier , mais ça bloque au niveau tableau. J'ai mis en gras où ça bloque.
Pourtant t_Base3, c'est juste, le nom de la feuille "Base" c'est juste aussi, le nom du tableau aussi.
Serait-il possible me dire où ça pourrait bloqué ?
Merci
Function autrederdate1(valeur, article, carte)
Application.Volatile
'Initialisation
'Carte = ThisWorkbook.Names("Carte").RefersToRange.Value
'Numéro de carte trouvé dans les celule nommées
Set tableau = Sheets("Base").ListObjects("t_Base3") 'Définit le tableau
coldate = tableau.ListColumns("Date").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, 3) & "/" & i & "/" & i.Parent.Cells(i.Row, 2)
'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)) = UCase(valeur) And i.Parent.Cells(i.Row, colCarte) = carte Then
'alors si la date est supérieure à la précédente mémorise la date
If CDate(i.Parent.Cells(i.Row, coldate)) > madate Then madate = CDate(i.Parent.Cells(i.Row, coldate))
End If
Next
'renvoi la date
autrederdate1 = madate
If autrederdate1 = 0 Then autrederdate1 = ""
End Function