Une suggestion basée sur un tableau structuré excel (objet ListObject en VBA), obtenu via le menu Insertion >> Tableau
Sur Feuil1, en colonne A : Une liste d'articles qui commence en A1, sans ligne vide, et la colonne B vide
Sur Feuil2, un tableau structuré appelé "Tableau1", muni de deux colonnes : colonne A = "ARTICLES" ; colonne B = "QUANTITE"
Objectif : au moyen de la liste d'articles saisis dans Feuil1, on veut écrire le chiffre 1 dans la colonne "QUANTITE" (située 1 colonne à côté de "ARTICLES") relative à chaque article de la liste
Méthode :
1 - Sur Tableau1
2 - Filtrer les données, sur la colonne ARTICLES,avec les articles de Feuil1, ne retenir que ces valeurs
3 - Ecrire 1 colonne à côté de chaque article visible le chiffre 1
4 - Enlever le filtre
1 2 3 4 5 6 7
| Sub toto()
With Feuil2.ListObjects("Tableau1")
.DataBodyRange.AutoFilter .ListColumns("ARTICLES").Index, Application.Transpose(Feuil1.Cells(1, 1).CurrentRegion.Value), xlFilterValues
.ListColumns("ARTICLES").DataBodyRange.SpecialCells(xlCellTypeVisible).Offset(0, 1).Value = 1
.DataBodyRange.AutoFilter
End With
End Sub |
On suppose qu'au moins un article de la liste existe dans le tableau de destination, par exemple en mettant en place un système où la liste d'article...ne puisse être alimentée que par des articles existants dans le tableau de destination.
A défaut, il faudra sécuriser la ligne 4 de la proposition qui renverrait une erreur si aucun article de la liste n'existe
Bon amusement