[VBA] Effacer des colonnes qui ne sont pas sur une liste

Bonjour,

j'ai trouvé le code suivant qui permet d'effacer les colonnes dont leur entête est présente dans la première colonne.

For Each col In Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
  Set vrech = Rows(1).Find(col)

  If Not vrech Is Nothing Then Columns(vrech.Column).EntireColumn.Delete

Next col

Ca marche très bien c'est super rapide, mais je voudrais le changer pour que la liste de la première colonne correspondent aux colonnes à garder et non pas à effacer et que cela soit aussi rapide.

j'ai penser à faire un code avec une boucle sur la première ligne, mais cela risque de prendre plus de temps.

auriez vous une idée pour faire qqchose d'aussi simple et rapide que le code ci-dessus, svp ?

j'ai joint un fichier allégé en lignes et colonnes.

merci pour votre aide

10test.xlsm (108.62 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

19test-v1.xlsm (100.21 Ko)

Bonjour gmb,

super, c'est ce que je voulais !! Merci

Rechercher des sujets similaires à "vba effacer colonnes qui pas liste"