Macro filtre élaboré

  • Initiateur de la discussion Initiateur de la discussion hugueslancelot
  • Date de début Date de début

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 !

H

hugueslancelot

Guest
Bonjour,

Je viens vers vous car je n'ai pas réussi à trouver de réponse sur d'autres forums. J'espère que vous pourrez m'aider !
J'ai un tableau avec, en colonne "AS", l'augmentation annuelle totale, et en colonne "AI" la recommendation.
Ce tableau comporte 1200 lignes.
Je voudrais créer une macro qui me permette de récupérer, dans une autre feuille "Above reco", toutes les lignes pour lesquelles l'augmentation totale annuelle est supérieure à la recommendation.
Je ne sais pas si je suis très clair (dans le cas contraire, dites-le moi).

J'ai essayé une macro avec un double filter, mais cela ne fonctionne pas.

Autre question : je voudrais, à partir de cette meme base de données, extraire les 20 remunerations les plus importantes et les 20 les plus faibles (colonne "AJ").

Quelqu'un aurait-il une idée ?

Merci beaucoup pour vos réponses.

Bonne journée.

Hugues Lancelot
 
Re : Macro filtre élaboré

Bonjour hugueslancelot,

Il suffit d'utiliser le filtre avancé (élaboré) :

Code:
Sub Filtrer()
Dim plage As Range
Set plage = Rows("1:" & [AS65536].End(xlUp).Row)
[IV2] = "=AS2>AI2"
plage.AdvancedFilter xlFilterInPlace, [IV1:IV2]
[IV2] = ""
With Sheets("Above reco")
  .Cells.Clear 'RAZ
  plage.SpecialCells(xlCellTypeVisible).Copy .[A1]
  plage.AdvancedFilter xlFilterInPlace, ""
  .Columns.AutoFit 'ajustement automatique
  Application.Goto .[AH1], True 'par exemple
End With
End Sub
Fichier joint.

Pour le 2ème problème déposez votre propre fichier, on ne va quand même pas tout faire à votre place.

A+
 

Pièces jointes

Re : Macro filtre élaboré

Re,

Bon Hugues doit faire la SIESTA.

Comme il y a 3 filtrages, j'ai paramétré la macro :

Code:
Sub Filtre(col$, formule$, NomFeuille$)
Dim plage As Range
Application.ScreenUpdating = False
Set plage = Range("1:" & Range(col & Rows.Count).End(xlUp).Row)
Cells(2, Columns.Count) = formule
plage.AdvancedFilter xlFilterInPlace, Cells(1, Columns.Count).Resize(2)
Cells(2, Columns.Count) = ""
With Sheets(NomFeuille)
  .Cells.Clear 'RAZ
  plage.SpecialCells(xlCellTypeVisible).Copy .[A1]
  plage.AdvancedFilter xlFilterInPlace, ""
  .Columns.AutoFit 'ajustement automatique
  .Rows.Sort .Columns(col), Header:=xlYes 'tri
  Application.Goto .[AH1], True 'par exemple
End With
End Sub
Elle est appelée par les macros des 3 boutons placées dans le code de la feuille.

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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
394
Réponses
7
Affichages
649
Réponses
3
Affichages
368
Retour