Bonjour,
Dans l'exemple joint oui. C'est ce qui est utilisé dans la ligne 4 :
Sub TRI()
With ActiveSheet
.[G2].Formula = "=IF(COUNTIF(REF,D2)>0,"""",IF(F2=""STK"","""",""SUPPR""))"
.ListObjects(1).Range.AutoFilter Field:=7, Criteria1:="SUPPR"
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
Application.ScreenUpdating = False
.ListObjects(1).DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
.ShowAllData
.Columns(7).Delete
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
End Sub
Ca permet de la rendre dynamique quelque soit le nombre de références renseignées.
Je compte le nombre de fois qu'apparaît D2 dans la liste référence, s'il apparaît au moins une fois >0 (j'avais oublié ce bout là merci de le rajouter) alors je ne met rien car je veux conserver la référence. Si c'est égal à 0 donc pas dans les ref à conserver, je regarde si son statut est STK, si oui alors je n'inscrit rien. Dans tous les autres cas j'inscris SUPPR.
Je filtre la table sur les SUPPR et supprime toutes les lignes visibles, puis je reset la table.
Cdlt,
dit @xorsankukai : En effet j'ai encore foutu le calcul manuel en début de code ... Avec celui posté ci-dessus j'ai un résultat de 2753 lignes sans erreur ..