VBA XLS - effacer une cellule quand une liste change

apnart Messages postés 2 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 18 septembre 2008 - 17 sept. 2008 à 16:48
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 - 18 sept. 2008 à 19:17
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

dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
17 sept. 2008 à 19:24
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+
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
17 sept. 2008 à 20:19
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+
0
apnart Messages postés 2 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 18 septembre 2008
18 sept. 2008 à 12:46
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)"
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
18 sept. 2008 à 19:17
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++
0
Rejoignez-nous