Effacer des cellules à partir d'une condition

Patanes

XLDnaute Nouveau
J'ai un tableau comportant plusieurs lignes et je voudrais que pour chaque ligne on ne puis avoir qu'une fois 1
J'ai réussi a faire fonctionner cela pour une ligne mais je coince pour répeter l'opération sur les autre lignes
Merci de votre aide
J'ai joins un fichier avec l'exemple
 

Pièces jointes

  • effacer cellules sous conditionstest.xls
    27 KB · Affichages: 35

kjin

XLDnaute Barbatruc
Re : Effacer des cellules à partir d'une condition

Bonjour,
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:D8")) Is Nothing Or Target.Count > 1 Then Exit Sub
If Target = "1" Then
    Application.EnableEvents = False
    Range("A" & Target.Row & ":D" & Target.Row).ClearContents
    Target = "1"
    Application.EnableEvents = True
End If
End Sub
A+
kjin
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Effacer des cellules à partir d'une condition

Bonjour Patanes et bienvenu, bonjour le forum,

Essaie comme ça :
Code:
Private test As Boolean 'déclare la variable test
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:D8")) Is Nothing Or Target.Count > 1 Then Exit Sub
If test = True Then test = False: Exit Sub
If Target = "1" Then
    test = True
    Range(Cells(Target.Row, 1), Cells(Target.Row, 4)).ClearContents
    Target = "1"
End If
End Sub

Je préfère utiliser une variable booléenne que Application.EnableEvents qui en cas de plantage au milieu du code en position False va empêcher l'exécution des macros événementielles.

[Edition]
Salut Kjin. Pas trop mouillé ?
 

Patanes

XLDnaute Nouveau
Re : Effacer des cellules à partir d'une condition

Trés grand merci c'est tout à fait ce qu'il me faut





Bonjour,
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:D8")) Is Nothing Or Target.Count > 1 Then Exit Sub
If Target = "1" Then
    Application.EnableEvents = False
    Range("A" & Target.Row & ":D" & Target.Row).ClearContents
    Target = "1"
    Application.EnableEvents = True
End If
End Sub
A+
kjin
 

Patanes

XLDnaute Nouveau
Re : Effacer des cellules à partir d'une condition

Merci beaucoup également de ton aide

Bonjour Patanes et bienvenu, bonjour le forum,

Essaie comme ça :
Code:
Private test As Boolean 'déclare la variable test
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:D8")) Is Nothing Or Target.Count > 1 Then Exit Sub
If test = True Then test = False: Exit Sub
If Target = "1" Then
    test = True
    Range(Cells(Target.Row, 1), Cells(Target.Row, 4)).ClearContents
    Target = "1"
End If
End Sub

Je préfère utiliser une variable booléenne que Application.EnableEvents qui en cas de plantage au milieu du code en position False va empêcher l'exécution des macros événementielles.

[Edition]
Salut Kjin. Pas trop mouillé ?
 

Patanes

XLDnaute Nouveau
Re : Effacer des cellules à partir d'une condition

Trés grand merci c'est tout à fait ce qu'il me faut

autre question: puis je dupliquer le code si je veux le même résultat sur une autre plage de la feuille
 

Pièces jointes

  • Essaitest.xls
    48 KB · Affichages: 29
  • Essaitest.xls
    48 KB · Affichages: 35
  • Essaitest.xls
    48 KB · Affichages: 33
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz