Suppression colonne en fonction d'un critère avec une boucle

Bonjour, j'ai besoin d'aide sur le fonctionnement d'une macro qui ne semble pas fonctionner:

J'ai un fichier avec deux onglets, dans le deuxième onglet j'ai un ensemble de colonne qui peuvent comporter dans différente lignes le texte "Text" je voudrais faire en sorte que la macro recherche dans chaque colonne les cellules qui comportent le mot "Text" et supprimer la colonne si c'est le cas. Je précise que je connaitrais pas dans le futur le nombre de colonnes. J'ai essayé d'adapter des macro trouvées sur le forum à mon problème en utilisant une boucle avec condition mais celle-ci ne semble avoir aucune action. Je pense que c'est évident maisje précise que je suis débutant

Ci joint le code:

Sub colonnes_2()

Dim i As Integer

Dim j As Integer

Application.ScreenUpdating = False

Windows("Fichier_synthèse1.xlsm").Activate

Sheets("Funds").Activate

For i = 1 To 60 ' 60 premières lignes

For j = 1 To 200 '200première colonnes

If Cells(i, j).Value = "Text" Then

Cells(i, j).EntireColumn.Delete

End If

Next

Next

Application.ScreenUpdating = True

End Sub

Je joins le fichier en question aussi.

Par avance merci beaucoup si vous avez des pistes.

Bonjour, un petit code, testé et adapté à votre fichier

Sub test()
With Sheet2
For i = .UsedRange.Columns.Count + 1 To 4 Step -1
If Application.WorksheetFunction.CountIf(.Columns(i), "Text") >= 1 Then
.Columns(i).Delete shift:=xlToLeft
End If
Next i
End With
End Sub

Bonjour, merci pour votre rapidité !

J'ai testé le code mais à la ligne :

For i = .UsedRange.Columns.Count + 1 To 4 Step -1

J'ai le message suivant: "invalid or unqualified reference"

Avez vous rencontré le même problème ?

Encore merci

Bonjour, non je n'ai pas eu se retour d'erreur

En amont d'utiliser le code ci-dessous (qui devrait être correctif) vérifiez la présence d'un "End With" dans le code que vous utilisez. S'il y est alors c'est une erreur qui m'échappe et j'espère que celui-ci contournera le problème.

Sub test()
For i = Sheet2.UsedRange.Columns.Count + 1 To 4 Step -1
If Application.WorksheetFunction.CountIf(Sheet2.Columns(i), "Text") >= 1 Then
Sheet2.Columns(i).Delete shift:=xlToLeft
End If
Next i
End Sub

https://msdn.microsoft.com/en-us/library/office/gg251426.aspx

J'ai réussi à adapter le code et il fonctionne !

Merci beaucoup pour votre aide.

Rechercher des sujets similaires à "suppression colonne fonction critere boucle"