Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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

Ca marche très bien !

Merci beaucoup à Geli.


Quant au B25, je me suis laissé emporter par mon élan ! Ca ne correspond à rien.
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…