Macro s'executant lors d'un choix dans un menu deroulant

Delux

XLDnaute Occasionnel
Bonjour a tous,

(je m'excuse par avance pour les accents manquants car j'ecris avec un qwerty)

Alors voila, j'aimerais que ma macro s'execute lorsque l'on fait un choix dans un menu deroulant se trouvant dans la cellule "C5".

J'ai bien essaye avec :

Code:
If Not Application.Intersect(Target, Range("C5")) Is Nothing Then

ou

If Target.Address = Range("C5").Address Then

Mais voila, le probleme est que j'ai une formule dans ce menu deroulant (validation de donnees) qui me permet en ecrivant la premiere lettre du mot rechercher de faire une sorte de filtre

Code:
=IF(C5<>"",OFFSET($D$204:$D$459,MATCH(C5,LEFT($D$204:$D$459,LEN(C5)),0)-1,,SUM((LEFT($D$204:$D$459,LEN(C5))=C5)*1)),)

Il faudrait donc que la macro s'execute, non pas quand je saisis la premiere lettre, mais dans un deuxieme temps lorsque que je fais mon choix dans le menu deroulant.

1) Je saisis la premiere lettre en C5
2) Je fais mon choix dans le menu deroulant (qui a ete filtre par la formule)
3) la macro se lance

Actuellement, la macro plante (Run-Time Error '13' Type Mismatch) vu qu'elle s'execute avant le choix dans le menu deroulant

Merci par avance pour votre aide

Cordialement,

Delux
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Macro s'executant lors d'un choix dans un menu deroulant

salut

et Si... tu essayais (sans passer par EMPTY) ?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address <> "$C$5" Then Exit Sub
  For l = 15 To Cells(Rows.Count, "B").End(xlUp).Row
     Rows(l).Hidden = Cells(l, "C") = ""
  Next
  Range("C5").Select
End Sub

(clic droit sur le nom de l'onglet, Visualiser le code puis code du code ci-dessus)
 

mikachu

XLDnaute Occasionnel
Re : Macro s'executant lors d'un choix dans un menu deroulant

Bonjour Dormeur 74

Veux-tu tester avec cette modification:
If Not Application.Intersect(Target, Range("C5")) Is Nothing And Len(Target.Value) > 1 Then

Bonjour à tous
Je savais que mon niveau de vba était relativement faible mais là... C'est carrément du chinois. j'ai lu l'aide sur intercept mais j'ai quand même rien compris.
Pourrais-tu m'expliquer cette ligne s'il t eplait ?

merci
 

pierrejean

XLDnaute Barbatruc
Re : Macro s'executant lors d'un choix dans un menu deroulant

Re
Application.intersect(Target,range("C5")) definit le range a l'intersection des ranges Target et Range("C5")
ICI il s'agit de 2 cellules ,par consequent s'il y a une intersection c'est qu'il s'agit de la meme
Si elles etaient differentes le resultat serait Nothing (rien)
Not is Nothing dit donc que Target et range ("C5") c'est la meme chose
(pour ma part j'aurais ecrit If target.Adress="$C$5" then )
On ajoute que la valeur contenue dans C5 doit avoir une longueur >1 pour continuer la macro
 

Dormeur74

XLDnaute Occasionnel
Re : Macro s'executant lors d'un choix dans un menu deroulant

Je pense que la proposition de pierrejean, dans sa dernière pièce jointe, devrait te donner satisfaction.

Cela dit, je ne passerais pas à côté de ce que Microsoft a eu la bonté d'implémenter dans ses suites.
Une simple Userform contenant une Combobox comme dans l'exemple (photographie) ci-joint permet de scanner ce qui est frappé au clavier.
 

Pièces jointes

  • glossaire.xls
    124.5 KB · Affichages: 70

pierrejean

XLDnaute Barbatruc
Re : Macro s'executant lors d'un choix dans un menu deroulant

Moi aussi
Et il fonctionne (en tout cas en ce qui concerne la ligne dont tu parles) !!
Tu peux cependant tester le remplacement par:
Code:
If Target.Address="$C$5" [I]And Len(Target.Value) > 1[/I] Then
 

Delux

XLDnaute Occasionnel
Re : Macro s'executant lors d'un choix dans un menu deroulant[RESOLU]

Moi aussi
Et il fonctionne (en tout cas en ce qui concerne la ligne dont tu parles) !!
Tu peux cependant tester le remplacement par:
Code:
If Target.Address="$C$5" And Len(Target.Value) > 1 Then

Mon cher Pierrejean,

Toutes mes felicitations :)
Maintenant cela fonctionne et sans faire d'erreur :)

Merci a tous pour votre aide si precieuse.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 103
Membres
104 032
dernier inscrit
akram.job