Filtre rechercheV + plusieurs lignes de résultat

Absinth

XLDnaute Junior
Bonjour bonjour,

Je progresse dans mes découvertes Excel, mais j'a encore quelques soucis...

Ci-joint un exemple:

Dans la première feuille, il y a un rapport de pièces. Dans la deuxieme, un tableau reprenant les pièces.

Si j'entre dans ma première feuille le type de véhicule, disons "Cat_773d"
et type d'entretien "500", correspondant aux colonnes B et E de la deuxieme feuille.

Je n'arrive pas a faire une recherche de toutes les pièces selon ces deux critères... il faudrait une sorte de boucle de rechercheV avec une incrémentation de ligne pour qu'il cherche tout le tableau mais je ne sais pas comment faire...

Merci d'avance pour vos lumières!

Absinth
 

Pièces jointes

  • absinth.xls
    26.5 KB · Affichages: 336
  • absinth.xls
    26.5 KB · Affichages: 339
  • absinth.xls
    26.5 KB · Affichages: 346

Absinth

XLDnaute Junior
Re : Filtre rechercheV + plusieurs lignes de résultat

En réfléchissant, je me suis dit qu'on pouvait faire la recherche uniquement sur le type de véhicule.

Pour le type d'entretien, il suffirait de tester si "1000" est compris dans la case, auquel cas on affiche tout les résultats, sinon on affiche uniquement les 500...

Je sais pas si c'est plus simple...
 

Absinth

XLDnaute Junior
Re : Filtre rechercheV + plusieurs lignes de résultat

Merci pour ta réponse rapide!

Par contre, je ne comprend pas ce que tu as fait...
Il faudrait que je trouve tous les filtres qui sont de type Cat_773b par exemple.

En simplifiant on pourrait dire qu'il me faut une RechercheV, sauf que dasn ce cas ci, il y a plusieurs résultats, et que RechercheV ne me donne que le premier. :(

Après, j'envisagerai de mettre une condition sur la réponse., je joins un exemple de résultat ;)
 

Pièces jointes

  • absinth_ex.xls
    28 KB · Affichages: 241

Absinth

XLDnaute Junior
Re : Filtre rechercheV + plusieurs lignes de résultat

Hem,

Bon, j'essaie (à la barbare) de comprendre et d'adapter la macro Filtre Elaboré trouvée sur ce forum. Mais ca ne marche pas...

Code:
If Target.Adress = "$C$10" Then
    
        Range("B19:F19").Select
        Sheets("FILTRES").Range("B3:J300").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("C3:C300"), CopyToRange:=Range("B19:F19"), Unique:=False
    End If

    Application.ScreenUpdating = True

Alors, voilà, le but est de retrouver dans la feuille FILTRES, colonne 3, la valeur qui est introduite en C10 (sur ma feuille principale). Les resultats de la ligne sont copiés de B19 à F19.

Mais j'ai peut-etre rien compris du tout a ce code.

Merci de m'éclairer :)
 

skoobi

XLDnaute Barbatruc
Re : Filtre rechercheV + plusieurs lignes de résultat

Re,

en PJ une proposition basé sur le filtre élaboré.
Cette macro s'exécute automatiquement (appelé macro événementielle) en modifiant le "type" ou la "frequence" (B7:C7)
Attention: en aucun cas modifier les titres en B6:C6 car les titres d'une plage de critère d'un filtre élaboré doivent correspondent avec les entêtes du tableau filtré (à moins de changer les entêtes bien-sûr).

Pour voir la macro: clique droit sur l'onglet de la feuille puis "visualiser le code".

Voili voilou.
 

Pièces jointes

  • absinth v2.zip
    13.6 KB · Affichages: 345

Tibo

XLDnaute Barbatruc
Re : Filtre rechercheV + plusieurs lignes de résultat

Bonjour,

Sous réserve d'avoir compris, un essai avec une formule matricielle :

en B10 :

Code:
=SI(LIGNE()-9>SOMMEPROD((FILTRES!$A$2:$A$57=$C$4)*
(FILTRES!$E$2:$E$57=$F$5));"";INDEX(FILTRES!$C$1:$C$57;
PETITE.VALEUR(SI((FILTRES!$A$2:$A$57=$C$4)*(FILTRES!
$E$2:$E$57=$F$5)<>0;(FILTRES!$A$2:$A$57=$C$4)*(FILTRES!
$E$2:$E$57=$F$5)*LIGNE($2:$57));LIGNE()-9)))

Formule matricielle à valider par CTRL + MAJ + ENTREE

et à recopier vers le bas

@+
 

Absinth

XLDnaute Junior
Re : Filtre rechercheV + plusieurs lignes de résultat

Yes!

Merci Skoobi !!!!!!!!!!!
Ca marche !!!
Pour Tibo, je ne trouve pas l'erreur, mais chez moi la formule ne marche pas... :(

Merci mille fois de vous etre penchés sur mon problème...


Skoobi,
encore un ptit quelque chose:

Le code va me trouver les filtres correspondant aux deux critères.
Or le deuxieme critère (Frequence) peut etre 500 ou 1000 uniquement. Dans ce code, si je mets 1000 je n'ai que les pièces 1000 qui sortent.

J'aimerais que pour 500, j'obtienne les 500. Mais pour les 1000, il me faudrait les 1000 ET les 500 (car un entretien de 1000h implique forcément un entretien de 500h avec ;) )

Comment puis-je ajouter cette condition?
 

Absinth

XLDnaute Junior
Re : Filtre rechercheV + plusieurs lignes de résultat

Yes...

Bon, je vais me flageller un peu...

Hem...

Sinon dans l'ordre du bizarre,
Je voulais mettre dans mon code:

Code:
 If Target.Address = "$B$7" Or Target.Address = "$C$7" Then
  Range([B10], Range("G" & [B10].End(xlDown).Row)).Clear
    Sheets("FILTRES").Range("A1:F57").AdvancedFilter Action:=xlFilterCopy, _
      criteriaRange:=ActiveSheet.Range("B6:C7"), CopyToRange:=ActiveSheet.Range("B10"), Unique:=False
  End If

Et remplacer le
Code:
Or Target.Address = "C7"
Par un Target.Address <= "C7" en me disant si c'est 1000 , il va prendre les valeurs 500 avec... Mais je suppose que la syntaxe n'est pas aussi simple que ca...

Alors la ou ca devient bizarre, c'est que depuis que j'ai mis <= dans mon code, on dirait que ma macro fait des itérations répétées..., c'est assez inattendu...

Une explication?
 

skoobi

XLDnaute Barbatruc
Re : Filtre rechercheV + plusieurs lignes de résultat

Re,

oulaa, tu mélanges tout!
If Target.Address = "$B$7" Or Target.Address = "$C$7" Then est une condition pour que la macro s'exécute (si tu ne mets pas de conditon, la macro entre en action quand tu modifie n'importe qu'elle cellule, tu vois?), c'est-à-dire que si tu modifie par exemple la cellule A1, la condition n'est pas remplie et de ce fait, le filtre ne s'exécute pas.
 

Discussions similaires