J'aimerai sélectionner, dans une macro, toutes les colonnes d'une feuille dont l'en-tête contient une chaîne de caractères particuliers, p. ex. ###, et n'y arrive pas...
Je suppose que le contenu des entêtes dont tu parles sont dans une cellule particulière choisie par toi même, l'ensemble de ces cellules étant sur une unique ligne ?
Si c'est le cas, il te suffit de faire une boucle qui analysera chacune de ces cellules (gestion de caractères correspondant à ton critère) et de retenir ou refuser la colonne correspondante.
Léa
En fait je veux effacer les colonnes (dont l'en-tête contient le critère) selon le code ci-dessous, mais j'obtiens une erreur "Impossible d'obtenir la propriété FindNext de la classe Range". J'imagine que le problème est le shift qui modifie les références...
'------------
Critere = "TEST"
With Range("A1:Z1")
Set Cell = .Find(Critere)
If Not Cell Is Nothing Then
CellDepart = Cell.Address
Do
Cell.EntireColumn.Select
Selection.Delete Shift:=xlToLeft
Set Cell = .FindNext(Cell)
Loop While Not Cell Is Nothing And Cell.Address <> CellDepart
End If
Merci Hervé, j'ai essayé d'inverser la plage (Range("Z1:A1")) mais le message d'erreur subsiste. C'est vraiment bloquant comme problème...
Je reformule ma question:
Comment par VBA supprimer toutes les colonnes d'une feuille dont la première cellule (en ligne 1) contient une chaîne de caractère particulière ?
Euh... le problème est que je dois faire un Find de "TEST" car les colonnes à supprimer sont p.ex. Nom_TEST, Prénom (TEST), TEST téléphone, etc...
Ou alors je n'ai rien compris ?
Merci Hervé, ça fonctionne bien.
En fait je suis parti sur le Find car je dois chercher des caractères spéciaux (genre #) que le Like ne semble pas accepter...