VBA XLS - effacer une cellule quand une liste change

Signaler
Messages postés
2
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
18 septembre 2008
-
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
-
Bonjour,

Je ne sais pas si je suis au bon endroit, mais je me lance ;-)

Excel 2007

Cellule A1 : contient une liste (par data validation)
Cellule A2 : contient un texte quelconque

Ce que je souhaite :

Que A2 s'efface quand on choisi un élément différent de la liste en A1.

J'ai mis le code suivant :

---------------
Private Sub Worksheet_Change(ByVal Target As Range)


Application.EnableEvents = False
If Target.Address = "$A$1" Then Range("A2").ClearContents
Application.EnableEvents = True

End Sub
--------------

par contre, ça marche très bien si en A1 j'ai simplement une valeur et non une liste... mais c'est pas ce qui m'intéresse :-((

Vous avez des idées ?
Merci d'avance.

4 réponses

Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
Bonjour ,
Est ce que ta liste "validation" en A1 est tirée d'une plage ou
elle a été crée par programmation ?
Attend réponse
A+
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
Re ,
Si la liste est tirée d'une liste:
-----------------------------------------------------------
Dim r As Range
Dim i As Integer
i = 0
For Each r In Range(Range("A1").Validation.Formula1)
If Range("a1").Value = r.Value Then
i = i + 1
End If
Next
If i = 0 Then
Range("A2") = ""
End If
---------------------------------------------------------------
A tester
A+
Messages postés
2
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
18 septembre 2008

Merci pour ta réponse dedenet2

Je viens d'essayer, j'ai placé ton code dans la partie "Private Sub Worksheet_Change(ByVal Target As Range)", mais j'ai l'erreur :

Run-time '1004':



Method 'Range' of object'_Worksheet' failed


Si je clique sur debug, je tombe sur la ligne "For Each r In Range(Range("AQ3").Validation.Formula1)"
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
Bonjour apnart ,
Mon code suppose que dans la cellule A1 , une liste deroulante est crée par la
methode "Validation".
Sur ta feuille ,il faut créer cette liste deroulante en AQ3
As tu crées cette liste deroulante ?
Sinon peut être montre ton code complet pour voir
A++