Effacer une plage de données selon un critère

Bonjour à tous,

J'apprécierais qu'on m'aide à concevoir une macro qui permettrait d'effacer le contenu de plusieurs cellules en fonction d'un critère.

Pour toutes les feuilles contenant le mot "SECTEUR :" en "B1", il faudra effacer (ClearContents) le contenu des cellules de A7 à AR1000 pour chacune de ces feuilles.

En vous remerciant par avance pour votre précieuse aide.

Salutations,

Renaud D.

Bonjour,

Merci de joindre un fichier à ta demande.

Cdlt.

Bonjour Jean-Eric,

Désolé pour le fichier absent. Je joins donc à ma demande le fichier "Exemple.xlsm". Ainsi, dans cette exemple et après l'exécution de la macro, le contenu des cellules A7 à AR1000 sera effacé uniquement dans les feuilles : "FEUILLE_1", "FEUILLE_3" et "FEUILLE_4". Le nombre de feuilles est variable.

Au plaisir de vous lire,

Salutations,

Renaud D.

21exemple.xlsm (101.15 Ko)

Bonsoir,

Pour toutes les feuilles contenant le mot "SECTEUR :" en "B1", il faudra effacer (ClearContents) le contenu des cellules de A7 à AR1000 pour chacune de ces feuilles.

Tu pourrais écrire la ligne de commande ! C'est comme tu le dis... Si B1="SECTEUR:", effacer la plage ! Il te suffira juste de mettre la ligne dans une boucle pour parcourir les feuilles...

Cordialement.

Bonjour,

un exemple à adapter.

Cdlt.

Public Sub Clear_Cells()
Dim tblSheets As Variant, vSheet As Variant
Const RNG As String = "$A$7:$AR$1000"
    tblSheets = Array("FEUILLE_1", "FEUILLE_3", "FEUILLE_4")
    For Each vSheet In tblSheets
        If Worksheets(vSheet).Cells(2).Value = "SECTEUR :" Then _
           Worksheets(vSheet).Range(RNG).ClearContents
    Next vSheet
End Sub

Bonjour Jean-Eric,

Merci pour votre réponse.

Est-il possible pour vous de modifier la ligne "tblSheets = Array("FEUILLE_1", "FEUILLE_3", "FEUILLE_4")" afin de l'adapter à toutes les feuilles répondant au critère, indépendamment du nombre et du nom?

Le nombre de feuilles répondant au critère "SECTEUR :" en "B1" peut varié.

Salutations,

Renaud D.

Bonjour,

Ainsi ?

Public Sub Clear_Cells()
Dim ws As Worksheet
Const RNG As String = "$A$7:$AR$1000"
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Cells(2).Value = "SECTEUR :" Then _
           w.Range(RNG).ClearContents
    Next vSheet
End Sub

Bonjour Jean-Eric,

J'ai changé quelques petits détails à votre macro afin qu'elle fonctionne parfaitement, soit :

Public Sub Clear_Cells()

Dim ws As Worksheet

Const RNG As String = "$A$7:$AR$1000"

For Each ws In ActiveWorkbook.Worksheets

If ws.Cells(2).Value = "SECTEUR :" Then _

ws.Range(RNG).ClearContents

Next ws

End Sub

Merci beaucoup pour votre aide et votre précieux dévouement.

Sincères salutations,

Renaud D.

Rechercher des sujets similaires à "effacer plage donnees critere"