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

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 !

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.
 
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:
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:
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

- 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

Discussions similaires

Réponses
4
Affichages
2 K
Réponses
9
Affichages
993
Retour