Valeurs uniques dans collection [Résolu]

Signaler
Messages postés
23
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
3 décembre 2008
-
Messages postés
23
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
3 décembre 2008
-
bonjour a tous

J'ai une question concernant les collections. Il me semblait qu'une collection pouvait contenir unquement les valeurs uniques qu'on lui ajoutait. Mais malheureusement ce n'est pas du tout cas.
Voici le code que j'ai tapé:

Code:

Dim Amort_Schedule As Range
Dim Ra, cells As Range
Dim All_years As New Collection
Dim lastrow As Integer
Dim Val_uniques As New Collection
Dim max_date As Date

Set Amort_Schedule = Range(Sheet3.cells(12, 2), Sheet3.cells(lastrow, 2))


        On Error Resume Next


            For Each cells In Amort_Schedule


                All_years.Add Year(CDate(cells.Value))
       
            Next


        On Error GoTo 0




For Each Item In All_years




        For Each Ra In Amort_Schedule
   
                If Year(CDate(Ra.Value)) = Item And CDate(Ra.Value) > LastDate Then
                    LastDate = CDate(Ra.Value)
                End If
           
        Next




        max_date = LastDate
   
        Val_uniques.Add CDate(max_date)
   
Next

Je cherche a obtenir, dans Val_uniques, uniquement les dernieres dates de chaque annee. Dans ma Amort_Schedule  j'ai une serie de date correspondant a des dates d'amortissement et je ne veux retenir aue les dernieres dates de chaque annee donc.
Ai-je oublie qqchose pour que ca marche, ou simplement la collection ne stocke pas les valuers de facon unique.

Merci pour votre aide

4 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Oui, la clé doit être de type String :

Val_uniques.Add max_date, CStr(max_date)

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

pour stocker des valeurs uniques, il faut inclure ta valeur en tant que clé (second paramètre de la méthode Add de la collection).
Si une valeur "doublon" essaie de s'ajouter, tu auras une erreur. A toi de faire ta gestion d'erreur

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
23
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
3 décembre 2008

Salut Mortalino

Merci pour ta reponse,
J'ai donc substituer maderniere ligne de code par
Code:

Val_uniques.Add max_date, CDate(max_date)

Mais la j'ai une erruer de Run'Time error 13 : Type mismatch
As tu une idee de ou peut etre mon erreur??

Merci
Messages postés
23
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
3 décembre 2008

Pqrfait


Merci beaucoup pour ton aide