Filtrer par trimestre (par 3 mois)

Bonjour,

Je cherche comment filtrer et extraire des valeurs par trimestre, c'est-à-dire tous les trois mois, j'ai beaucoup cherché sur le net, je n'ai pas trouvé de solution. Pouvez-vous m'aider, mes amis?

Pour plus de précisions, je vais joindre un exemple de fichier.

Merci d'avance.

Bonne journée.

Bonjour zinelamri,

Voyez si la solution proposée dans le fichier joint vous convient

=SI(ESTERREUR(PETITE.VALEUR(Trim;LIGNE()-12));"";INDIRECT(ADRESSE(PETITE.VALEUR(Trim;LIGNE()-12);COLONNE();4;1;"Liste");1))

Bonjour njhub

merci beaucoup pour la réponse rapide

merci pour votre réactivité et collaboration

Tant que les résultats sont corrects, ils me conviennent, mais je cherche une version VBA pour finaliser mon projet.

Bonjour

Supprime les ligne vides au dessus de la liste (sinon adapter le VBA)

Mettre respectivement dans les cellules O1 et O2

Trimestre

=ET(MOIS(Date)>=SI(GAUCHE($E$7;3)="Jan";1;SI(GAUCHE($E$7;3)="Avr";4;SI(GAUCHE($E$7;3)="Jui";7;10)));MOIS(Date)<=SI(GAUCHE($E$7;3)="Jan";3;SI(GAUCHE($E$7;3)="Avr";6;SI(GAUCHE($E$7;3)="Jui";9;12))))

et dans le VBA

    Sheets("Liste").Columns("A:F").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Sheets("Statistiques").Range("O1:O2"), CopyToRange:=Sheets("Statistiques").Range("A12:F12"), Unique:=  False

bonjour le forum

bonjour 78chris

Le code a copier toute la liste non pas filtrer.

Je pense qu'il manque quelque chose?

Merci pour l'attention et l'aide.

Cordialement

RE

Tu n'as pas du faire ce que j'ai indiqué :

  • Supprimer les ligne vides au dessus de la liste (sinon adapter le VBA)
  • Remplir O1 et O2 comme indiqué

Le VBA peut d'ailleurs être automatiquement activé par le changement de choix en E7 via la procédure Worksheet_Change de la feuille Statistiques

filtreavance

Bonjour à tous,

Voici une alternative avec du Sql. La requête est simplette :

    Req = "SELECT * FROM " & TBL & _
          " WHERE MONTH(`Date`) =" & idx & _
          " OR MONTH(`Date`) =" & idx + 1 & _
          " OR MONTH(`Date`) =" & idx + 2

Et elle s'active au changement de la liste déroulante :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lg As Integer, T As Variant

    If Not Intersect(Target, Range("E7")) Is Nothing Then
        lg = Me.Range("M:M").Find(Target.Value, LookIn:=xlValues).Row - 10
        lg = lg + (2 * (lg - 1))
        T = T_Liste(lg)
        Me.Range("A13:F100000").ClearContents
        Me.Range("A13").Resize(UBound(T, 1), UBound(T, 2)) = T
    End If
End Sub

Pierre

Bonjour le forum

Bonjour 78chris, pierrep56

Enfin j'ai réussi après avoir suivi les étapes de 78chris ,

Pour deuxième solution de pierrep56ة J'ai besoin de temps pour l'adapter

Merci beaucoup pour votre soutien continu.

Cordialement

Rechercher des sujets similaires à "filtrer trimestre mois"