trier des données, par colonne, pour chaque année

  • Initiateur de la discussion Initiateur de la discussion soif77
  • 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 !

S

soif77

Guest
bonjour,

merci pour les reponses que j'ai eu recemment, cool ce forum !

j en ai une autre....lol

comment je peux faire pour, a partir d'un tableau d'archives(avec des dates donc), pouvoir classer ces infos par année ? en fait, je veux que tous les enregistrments de 2006, se mettent en colonne B, tous ceux de 2007 en colonne C etc. et encore mieux : le faire a partir de date de débu et date de fin ?

hier j ai pu grace au forum trier entre 2 dates, a partir d'une macro, et je veux maintenant pouvoir les classer par année, ou mois, peu importe

une idée

je sais pas si je suis clair, mais merci en tou ca !
 
Re : trier des données, par colonne, pour chaque année

Bonsoir,

Pour ton problème, je me sers du filtre élaboré.....

Regarde le fichier joint...

Le code :

Code:
Sub tri_annee()
Dim Annees As Object, Cel As Range
Dim It
Application.ScreenUpdating = False
Set Annees = CreateObject("Scripting.Dictionary")
Range("B1:IV1000").ClearContents
Range("A1:A" & [A65000].End(xlUp).Row).Name = "base"
Range("A2:A" & [A65000].End(xlUp).Row).Name = "base2"
For Each Cel In [base2]
    If Not Annees.Exists(Year(Cel)) Then Annees.Add Year(Cel), Year(Cel)
Next Cel
For Each It In Annees.Items
    With [IV1].End(xlToLeft)
        x = .Offset(0, 2).Resize(2, 1).Address
        y = .Offset(0, 1).Address
        Range(y).Value = [A1]
        .Offset(1, 2).FormulaR1C1 = "=YEAR(RC1)=" & It
        Range("base").AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=Range(x), CopyToRange:=Range(y)
        Range(y) = It
    End With
Next It
Range(x).ClearContents
End Sub

le fichier exemple :

Edit, pour tester, clique sur le rectangle jaune "Date", bonne soirée
 

Pièces jointes

Dernière édition:
Re : trier des données, par colonne, pour chaque année

bhbh,

cela marche, nikel, cependant je voudrais mettre une limite à ça. C'est-à-dire que j'aimerai avoir seulement les 3 dernières années, voir les 5. Car si j'ai 10 années d'enregistrments ca me sort les 10 et pour moi c'est inutile. Saurais-tu comment faire ça ?
 
Re : trier des données, par colonne, pour chaque année

Bonjour

Ne connaissant pas le dictionnary que me fait découvrir bhbh (je le salue amicalement et le remercie de cette nouveauté pour moi), j'ai modifié son code pour limiter à 3 ans en utilisant un array
Code:
Sub tri_annee()
Dim Annees As Object, Cel As Range
Dim It
Application.ScreenUpdating = False
Set Annees = CreateObject("Scripting.Dictionary")
Range("B1:IV1000").ClearContents
Range("A1:A" & [A65000].End(xlUp).Row).Name = "base"
Range("A2:A" & [A65000].End(xlUp).Row).Name = "base2"
For Each Cel In [base2]
    If Not Annees.Exists(Year(Cel)) Then Annees.Add Year(Cel), Year(Cel)
Next Cel
'Conversion du dictionnary en array
aItems = Annees.Items
z = UBound(aItems)
For i = z - 2 To z
    It = aItems(i)
    With [IV1].End(xlToLeft)
        x = .Offset(0, 2).Resize(2, 1).Address
        y = .Offset(0, 1).Address
        Range(y).Value = [A1]
        .Offset(1, 2).FormulaR1C1 = "=YEAR(RC1)=" & It
        Range("base").AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=Range(x), CopyToRange:=Range(y)
        Range(y) = It
    End With
Next i
Range(x).ClearContents
End Sub

PS : j'ai oublié de préciser que le code fonctionne si les dates initiale sont bien classées en ordre croissant
 
Dernière édition:
Re : trier des données, par colonne, pour chaque année

chris,
ya un pti souci pour cette commande :

It = aItems(i)
"Erreur d'exécution 13 : incompatibilité de type"

tu sais ce qu'il faut faire ?
merci
 
Re : trier des données, par colonne, pour chaque année

chris,

je sais pas si t as eu mon message d avant mais maintenat il me met ca

It = aItems(i)

"Erreur d'exécution 9 : l'indice n'appartient pas à la sélection"

Sais tu pourquoi ?

Merci en tout cas
 
- 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
8
Affichages
782
Réponses
9
Affichages
703
Réponses
3
Affichages
734
Retour