Suppression Colonnes sous conditions

Bonjour,

Je cherche à supprimer des colonnes qui ne comporterait pas tel ou tel mot.

J'ai trouvé ce topic : https://forum.excel-pratique.com/excel/supprimer-les-colonnes-sous-conditions-t35055.html

et pensait pouvoir l'adapter mais rien à faire....

J'arrive à supprimer des colonnes qui comporte un mot mais pas à supprimer les colonnes qui ne comportent PAS un mot...

Please Help...

Bonjour

Le raisonnement est différent

Dans ce cas là il faut vérifier que la colonne ne comporte aucun nom de la liste

A tester

Option Explicit

Sub SupColonne()
Dim NomCol
Dim I As Integer, Colonne As Integer, NbCol As Integer

  Application.ScreenUpdating = False                  ' Bloque le rafraîchissement écran
  NomCol = Array("STOP", "LOUPE", "RATP", "PTT")      ' On vire les colonnes qui n'ont pas un de ces mots : en majuscules
  NbCol = Cells(1, Columns.Count).End(xlToLeft).Column    ' Nombre de colonnes à traiter
  For Colonne = NbCol To 1 Step -1                    ' Parcourt toutes les colonnes de la fin vers la début
    For I = 0 To UBound(NomCol)                       ' Pour chaque colonne
      If UCase(Cells(1, Colonne)) = NomCol(I) Then    ' On vérifie si son nom est dans la liste
        Exit For                                      ' Si oui on quitte la boucle
      End If
    Next I
    If I > UBound(NomCol) Then                        ' On a vérifié le nom de la colonne avec la liste des noms et pas d'égalité
      Columns(Colonne).Delete                      ' Donc on supprime la colonne
    End If
  Next Colonne
End Sub

Un grand merci, ça marche nickel...

Dis-moi si j'abuse :

ça serait compliqué de ne pas prendre en compte la casse ?

Bonjour

Dunanshi a écrit :

ne pas prendre en compte la casse ?

Normalement c'est prévu

NomCol = Array("STOP", "LOUPE", "RATP", "PTT")      ' On vire les colonnes qui n'ont pas un de ces mots : [surligner=#FFFF40]en majuscules 
NbCol = Cells(1, Columns.Count).End(xlToLeft).Column    ' Nombre de colonnes à traiter
 For Colonne = NbCol To 1 Step -1                    ' Parcourt toutes les colonnes de la fin vers la début
   For I = 0 To UBound(NomCol)                       ' Pour chaque colonne
     If [surligner=#FFFF40]UCase(Cells(1, Colonne)) = NomCol(I) Then    ' On vérifie si son nom est dans la liste

Mais si tu veux une sécurité supplémentaire

 If [surligner=#FFFF40]UCase(Cells(1, Colonne)) = [surligner=#80FFFF]Ucase(NomCol(I)) Then    ' On vérifie si son nom est dans la liste

Normalement c'est prévu

Bon Ok j'ai rien dit........

Ah, si :

Rechercher des sujets similaires à "suppression colonnes conditions"