Effacer des cellules à partir d'une condition

  • Initiateur de la discussion Initiateur de la discussion Patanes
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

Patanes

Guest
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

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
 
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é ?
 
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
 
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é ?
 
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

Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
223
Réponses
23
Affichages
682
Retour