Bonjour,
Je n'ai pas très bien compris mais si je peux essayer de récapituler pour éventuellement vous orienter dans votre code.
Il faut une macro qui filtre les colonnes, c'est-à-dire qui masque celles ne répondant pas aux critères.
Donc pour chaque colonne du tableau, on regardera (pour) chaque cellule et on examinera si la valeur vaut 1 et/ou 2.
Si c'est le cas, on laisse comme tel ;
Sinon (si aucune cellule de la colonne ne contient la valeur cherchée), on masque la colonne (Columns(k).EntireColumn.Hidden = True).
Et ainsi de suite.
Petit préalable, au cas où vous voudriez tester le cas 1 et 2 en même temps, il faut s'interroger sur le filtre : est-ce un filtre OU (union de valeurs) ou un filtre ET (intersection de valeurs : on ne garde que les colonnes dans lesquelles 1 et 2 sont présents).
Après, il faudra prévoir une macro pour réafficher les colonnes.
J'espère que je ne tombe pas à côté de votre demande et que ça vous servira.
Cordialement,