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 !
* sur la feuille "BDD", regarde A6 : "matière".
* regarde A7:A10, dont A8 : "FRANÇAIS".
* toute la suite est sur "Feuil2" ; va dessus.
* formule en C5 : =SI(D3="";"";SIERREUR(RECHERCHEV(D3;BDD!A7:C10;3;0);"?"))
pour le résultat en C5, il y a ces 3 différents cas : a) si D3 est vide, alors C5aussi est vide. b) si la matière est trouvée, ça retourne la branche. c) si la matière n'est pas trouvée, ça retourne "?".
* sur la feuille "BDD", regarde A6 : "matière".
* regarde A7:A10, dont A8 : "FRANÇAIS".
* toute la suite est sur "Feuil2" ; va dessus.
* formule en C5 : =SI(D3="";"";SIERREUR(RECHERCHEV(D3;BDD!A7:C10;3;0);"?"))
pour le résultat en C5, il y a ces 3 différents cas : a) si D3 est vide, alors C5aussi est vide. b) si la matière est trouvée, ça retourne la branche. c) si la matière n'est pas trouvée, ça retourne "?".
pour le contenu de D3 : a) si tu choisis un item de la liste, ça fait ce que tu attends ;
choisis par exemple "PHILO" ou "FRANÇAIS" ➯ le tableau
de résultats est mis à jour. (en plus, C5 contient la bonne branche) b) appuie sur la touche Suppression ; ça efface D3 et aussi
les lignes du tableau de résultats ➯ retour à l'état initial. (bien sûr, C5 est vide : son contenu a aussi été effacé)
dans tout le texte ci-dessus, note que j'ai pris grand soin
d'indiquer le nom des feuilles (en violet) ; les références de
cellules (en orange), les données (en bleu ou en noir).
petite question : as-tu eu besoin de chercher quelque chose,
car je n'ai pas été assez précis ou insuffisamment clair ?
non, hein ? 😉
maintenant, fais une comparaison avec ton énoncé :
tu précises que c'est pour "Feuil2" : c'est déjà bien ! ensuite, malheureusement, tu indiques juste qu'il y a une erreur dans le code de "Feuil2", sans préciser de quelle erreur il s'agit, ni quand elle se produit ! tu ne parles pas non plus d'une liste, ni son emplacement ! tu aurais dû écrire :
pour "Feuil2" : j'ai une sub Worksheet_Change() ; sur "Feuil2", il y a une liste en D3 ; quand je choisis un item de cette liste, ça provoque une erreur d'exécution 1004 : "Le nom de champ est incorrect ou manquant dans la zone d'extraction".
ça fait une grosse différence, hein ? 😉
code VBA (18 lignes) :
VB:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dlg&
With Target
If .CountLarge > 1 Then Exit Sub
If .Address(0, 0) <> "D3" Then Exit Sub
End With
Application.ScreenUpdating = 0
dlg = Cells(Rows.Count, 1).End(3).Row
If dlg > 7 Then
Application.EnableEvents = 0: Range("A8:F" & dlg).Clear
Application.EnableEvents = -1
End If
If [D3] <> "" Then _
[BDD!A6].CurrentRegion.AdvancedFilter 2, [D2:D3], [A7:F7]
End Sub
- 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