Effacement de cellules en cas de changement de valeur d'une liste déroulante

benadry

XLDnaute Occasionnel
Bonjour,

J'ai un petit problème auquel je ne trouve pas de solution.

J'ai regardé sur différents forums et trouvé des solutions approchantes, mais rien que j'aie réussi à adapter à mon cas.

J'ai un tableau Excel dans lequel il y a une liste déroulante en B5.

Je voudrais qu'à chaque fois que la valeur de la liste déroulante change, le contenu de certaines cellules soit effacé.
Il s'agit des cellules : B11, B24, B25, B28, C28, C29, B30, C30, B31, C31, D28, E28, D29, E29, D30, E30, B33, C33, D33, E33.

J'ai trouvé la macro suivante sur un forum :

Code:
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Integer

  If Target.Count > 1 Then Exit Sub
  If Not Intersect(Range("B4,D4,F4,H4,J4"), Target) Is Nothing Then
    Application.EnableEvents = False
    For I = Target.Column + 2 To 10 Step 2
      Cells(Target.Row, I).ClearContents
    Next I
    Application.EnableEvents = True
  End If
End Sub

Elle fonctionne très bien. Mais, mon problème est que les cellules ne sont pas esapcées régulièrement. J'ai essayé d'adapter la macro comme ceci :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Integer
Dim Target As Range

  If Target.Count > 1 Then Exit Sub
  If Not Intersect(Range("b5, B11,B24,B25,B28,c28, c29, b30, c30, b31, c31, d28, e28,d29, e29, d30, e30, b33, c33, d33, e33"), Target) Is Nothing Then
    Application.EnableEvents = False
      Range("b11").ClearContents
      Range("b24").ClearContents
' [...]
    Application.EnableEvents = True
  End If
End Sub

Mais, ça ne fonctionne pas ! Si Quelqu'un avait une idée, ce serait très sympa !

Merci d'avance.

Cordialement.
 

Gelinotte

XLDnaute Accro
Re : Effacement de cellules en cas de changement de valeur d'une liste déroulante

Bonjour,


À tester :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim I As Integer


   If Target.Count > 1 Then Exit Sub
   If Not Intersect(Range("b5"), Target) Is Nothing Then
     Application.EnableEvents = False
     
       Range("b11").ClearContents
       Range("b24").ClearContents
 ' [...]
     Application.EnableEvents = True
   End If
 End Sub

B5 étant la cellule où le changement est détecté.


Geli
 
Dernière édition:

Gelinotte

XLDnaute Accro
Re : Effacement de cellules en cas de changement de valeur d'une liste déroulante

Bonjour,

J'ai pris le temps de créer un classeur pour tester. De mon côté, ça fonctionne bien, il y a effacement dans B11 et B24. Pour les autres cellules, il faut bien entendu les ajouter.

As-tu un classeur à nous soumettre pour trouver la cause de cette inaction (allégé et anonymisé bien sûr) ?


Geli
 
Dernière édition:

benadry

XLDnaute Occasionnel
Re : Effacement de cellules en cas de changement de valeur d'une liste déroulante

Rebonjour,

Voici un classeur allégé et anonymisé.

Les cellules à effacer sont celles indiquées dans mon premier message.
Sauf erreur de ma part, il s'agit des cellules en couleur saumon.

Merci d'avance pour ton aide.


Cordialement.
 

Pièces jointes

  • Test.xlsm
    55.9 KB · Affichages: 46
  • Test.xlsm
    55.9 KB · Affichages: 39
  • Test.xlsm
    55.9 KB · Affichages: 39

Discussions similaires

Réponses
4
Affichages
2 K

Statistiques des forums

Discussions
312 169
Messages
2 085 914
Membres
103 034
dernier inscrit
Mbeya