(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
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
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)
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 ?
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
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.