[ RESOLU] Effacer des cellules en fonction d'un critère

apb

XLDnaute Occasionnel
Bonjour à Tous et d'avance merci pour votre aide, et votre temps accordé.

Je recherche la possibilité d'effacer des cellules en fonction d'un critère d'une colonne.

j'importe des données pour faire un classement selon certain critère.

dans le tableau (ci-joint) je cherche à effacer par exemple les cellules C8:E8 si la cellule F8 contient "PB"!!!

Merci pour vos lumières

Cordialement

APB
 

Pièces jointes

  • effacement selon critère.xlsx
    12.8 KB · Affichages: 49
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Effacer des cellules en fonction d'un critère

Bonjour APB, bonjour le forum,

Peut-être comme ça :
Code:
Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)

With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    dl = .Cells(Application.Rows.Count, 6).End(xlUp).Row 'définit la dernière ligne éditiée dl de la colonne 6 (=F)
    Set pl = .Range("F4:F" & dl) 'définit la plage pl
    For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
        'si la valeur de la cellule est égale à "PB", efface le contenu de la plage correspondante
        If cel.Value = "PB" Then cel.Offset(0, -3).Resize(1, 3).ClearContents
    Next cel 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub
 

apb

XLDnaute Occasionnel
Re : Effacer des cellules en fonction d'un critère

Bonsoir ROBERT et merci pour votre réponse -

Votre formule fonctionne parfaitement sur mon fichier exemple.

Je viens d'essayer de l'adapté à mon fichier réel, et, malgré vos commentaire dans votre macro, je n'y arrive pas!!!

Je vous joint un fichier plus près de ma réalité du problème

Je ne dois pas tenir compte pour un classement général de plusieurs concours, dans le cas présent 13 des participants ayant dans les colonnes "Valid." en vert dans la feuille la mention "PB"

Ces concours ayant plusieurs épreuves des cellules vides séparent les différentes épreuves de chaque concours.

Chaque concours a un nombre variable de participant

J'ai établi dans mon fichier principal un classement mais j'ai oublié cette notion de validation.

Merci encore pour votre aide

Cordialement

APB
 

Pièces jointes

  • effacement selon critère rev1.xlsx
    68.4 KB · Affichages: 45

Robert

XLDnaute Barbatruc
Repose en paix
Re : Effacer des cellules en fonction d'un critère

Bonsoir APB, bonsoir le forum,

Le code adpté :
Code:
Sub Macro1()
Dim cc As Byte 'déclare la variable cc (Colonne Concours)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)

With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    For cc = 5 To 77 Step 6 'boucle 1 : sur les colonnes 5 à 77 par pas de 6
        dl = .Cells(Application.Rows.Count, cc).End(xlUp).Row 'définit la dernière ligne éditiée dl de la colonne cc
        Set pl = .Range(.Cells(3, cc), .Cells(dl, cc)) 'définit la plage pl
        For Each cel In pl 'boucle 2 : sur toutes les cellules cel de la plage pl
            'si la valeur de la cellule est égale à "PB", efface le contenu de la plage correspondante
            If cel.Value = "PB" Then cel.Offset(0, -3).Resize(1, 3).ClearContents
        Next cel 'prochaine cellule de la boucle 2
    Next cc 'prochaine colonne de la boucle 1
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub

p.s. je suis toujours surpris quand je vois des personnes qui donnent un exemple non adapté à leur problème. C'est une grande perte de temps...
 

apb

XLDnaute Occasionnel
Re : Effacer des cellules en fonction d'un critère

Bonjour ROBERT et un grand merci pour votre aide

Effectivement je n'ai pas mis mon tableau complet pour exemple, je pensai à tord pouvoir m'inspirer de la première réponse pour adapter le code à mon tableau j’étais un peu présomptueux, d’où ma deuxième démarche.

J'ai adapté quand même votre dernière proposition à mon tableau original est un GRAND MERCI ç’a marche.

Je tente de faire une modification pour mettre une couleur de fond dans ces cellules effacées pour qu'elles soient plus voyantes.

J'ai tenté d'ajouté après .ClearContents, .Interior.ColorIndex = 3 mais BUG!!!!

Encore trop présomptueux, Pouvez-vous me transcrire la solution

Merci pour votre aide

Cordialement

APB
 

natorp

XLDnaute Accro
Re : Effacer des cellules en fonction d'un critère

Bjr apb et Robert

Je me permets de répondre :

Code:
Sub Macro1()
Dim cc As Byte 'déclare la variable cc (Colonne Concours)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)

With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    For cc = 5 To 77 Step 6 'boucle 1 : sur les colonnes 5 à 77 par pas de 6
        dl = .Cells(Application.Rows.Count, cc).End(xlUp).Row 'définit la dernière ligne éditiée dl de la colonne cc
        Set pl = .Range(.Cells(3, cc), .Cells(dl, cc)) 'définit la plage pl
        For Each cel In pl 'boucle 2 : sur toutes les cellules cel de la plage pl
            'si la valeur de la cellule est égale à "PB", efface le contenu de la plage correspondante
            If cel.Value = "PB" Then
            cel.Offset(0, -3).Resize(1, 3).Interior.ColorIndex = 3
            cel.Offset(0, -3).Resize(1, 3).ClearContents
            End If
        Next cel 'prochaine cellule de la boucle 2
    Next cc 'prochaine colonne de la boucle 1
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub

Cordialement, Gérard
 

Discussions similaires

Statistiques des forums

Discussions
312 325
Messages
2 087 304
Membres
103 513
dernier inscrit
adel.01.01.80.19