XL 2010 Supprimer les lignes qui ne répondent pas à un ou plusieurs critères

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 !

shroomers88

XLDnaute Nouveau
Bonjour,

J'ai ce fichier en pièce-jointe pour lequel j'aimerais obtenir les données de la feuille "Facturation" retournant dans une deuxième feuille l'équivalent des données de la feuille "Résultats".

Le critère pour obtenir la feuille "Résultats" est que toutes les cellules de la feuille "Facturation" colonne E doivent être référencées à "Oui". Donc si "Oui", colonne E, feuille "Facturation" = Oui, les données des colonnes correspondantes (comme par exemple la colonne F de la feuille "Facturation" nommée "Descriptif Dépense") apparaissent dans la feuille "Résultats" (comme par exemple la colonne F de la feuille "Résultats" nommée "Descriptif Dépense"). Si la colonne E de la feuille "Facturation" est vide ou à "Non" alors la ligne n'apparaît pas dans la feuille "Résultats". Finalement aucuns espaces ne séparent les lignes de la feuille "Résultats" pour lesquels un "Oui" a pu être trouvé dans la feuille "Facturation".

Merci beaucoup pour votre aide !

Mark
 

Pièces jointes

Salut à vous 2,

Je te proposerais une solution via la formule matricielle suivante (à valider avec CTRL+MAJ+ENTREE et recopier dans toutes les cellules du tableau de résultats) :
Code:
=SIERREUR(INDEX(Facturation!A$4:A$15;PETITE.VALEUR(SI(Facturation!$E$4:$E$15="oui";LIGNE(Facturation!$E$4:$E$15)-3);LIGNE($A1));1);"")

A noter que cette fonction peut être améliorée en définissant des noms ou en utilisant l'outil tableau disponible pour les fichiers version 2007 et +.
 
Bonjour shroomers88, Lolote83, Nairolf,

C'est un problème classique, moult fois traité sur le forum.

Une solution avec le filtre automatique :
Code:
Private Sub Worksheet_Activate()
With Feuil1 'CodeName de la feuille source
  With Intersect(.Rows("3:" & .Rows.Count), .UsedRange)
    .AutoFilter
    .AutoFilter 5, "Oui"
    .Copy [A3]
    .AutoFilter
  End With
  Rows(Application.CountIf(.[E:E], "Oui") + 4 & ":" & Rows.Count).Delete
End With
End Sub
La macro est à placer dans le code de la feuille "Résultats" et se déclenche quand on l'active.

Fichier joint.

A+
 

Pièces jointes

Re,

Un complément au cas où la feuille "Résultats" serait filtrée :
Code:
Private Sub Worksheet_Activate()
With Feuil1 'CodeName de la feuille source
  With Intersect(.Rows("3:" & .Rows.Count), .UsedRange)
    .AutoFilter
    .AutoFilter 5, "Oui"
    If Me.FilterMode Then Me.ShowAllData 'si la feuille est filtrée
    .Copy [A3]
    .AutoFilter
  End With
  Rows(Application.CountIf(.[E:E], "Oui") + 4 & ":" & Rows.Count).Delete
End With
End Sub
Par ailleurs dans la 1ère feuille les lignes sont maintenant colorées par MFC sur A:M :
Code:
=(LIGNE()>3)*($A1<>"")*NON(MOD(LIGNE();2))
Fichier (2).

A+
 

Pièces jointes

- 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

Discussions similaires

Réponses
1
Affichages
1 K
Retour