XL 2013 Effacer une plage de cellules suivant 2 conditions

Onil62

XLDnaute Nouveau
Bonjour,

Je suis débutant sur VBA et je n'arrive pas à résoudre ce problème :

J'ai un tableau excel qui permet de gérer, en autre, le personnel en fonction de leur affection sur chantier.
Les colonnes "Liste du personnel" et "Responsable" évoluent, notamment lorsqu'il y a du personnel intérimaire ou lorsque le personnel change de chantier.
En résumé, je souhaiterai effacer une plage de cellules en fonction de 2 conditions.
Exemple : Si la cellule B6 affiche, par le biais d'une formule, "Vide" ET la cellule C6 est vide alors on efface sans bouton de commande la plage de cellules D6:BC6.

Merci d'avance pour votre aide,
 

Pièces jointes

  • Test.xlsx
    9 KB · Affichages: 9
Solution
Bonsoir Onil,
En PJ un essai avec un Worksheet_Change qui doit être obligatoirement dans la feuille considérée:
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Column = 2 Or Target.Column = 3 Then
        If Cells(Target.Row, 2) = "Vide" And Cells(Target.Row, 3) = "" Then
            Range("D" & Target.Row & ":BC" & Target.Row).ClearContents
        End If
    End If
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Onil,
En PJ un essai avec un Worksheet_Change qui doit être obligatoirement dans la feuille considérée:
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Column = 2 Or Target.Column = 3 Then
        If Cells(Target.Row, 2) = "Vide" And Cells(Target.Row, 3) = "" Then
            Range("D" & Target.Row & ":BC" & Target.Row).ClearContents
        End If
    End If
End Sub
 

Pièces jointes

  • Test (8).xlsm
    18.2 KB · Affichages: 5

GALOUGALOU

XLDnaute Accro
re onil62 bonsoir le forum
je vous propose cette macro qui va boucler sur toute la feuille
VB:
Sub SUPPRIMER()
Calculate
Dim J As Long
Sheets("Feuil1").Select

li = Sheets("Feuil1").Cells(36000, 1).End(xlUp).Row
  For J = li To 1 Step -1
     If Range("B" & J) = "Vide" And Range("C" & J) = "" Then Rows(J).Range("D1:BC1").ClearContents
  Next J

End Sub
cordialement
galougalou
 

Pièces jointes

  • Copie de Test.xlsm
    17.7 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
312 070
Messages
2 085 043
Membres
102 766
dernier inscrit
Awiix