[VBA Excel] Doublons d'un tableau en cours de construction

Résolu
lml-mike Messages postés 455 Date d'inscription   Statut Contributeur Dernière intervention   -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je suis en train de me prendre la tête pour un truc de logique vraiment bête...

En gros, j'ai un tableau mesValeurs() dynamique contenant 6 valeurs : A, B, C, D, B, E.

J'aimerais pouvoir faire un tableau comme ça, en évitant les doublons et en mettant un compteur

1 A 1
2 B 2
3 C 1
4 D 1
5 E 1

Cependant, je n'arrive pas à trouver la logique pour checker à chaque fois le tableau dès que je veux rentrer une valeur par rapport aux occurences précédentes. J'ai essayé avec un double POUR comme ceci :

Pour I de 1 à 5
Pour J de 1 à 5
Si mesvaleurs(J) = mesvaleurs(I)
Compteur(J) = Compteur(J) + 1
Sinon
Ecrire tableau mesvaleurs(J) à la suite
Fin Pour
Fin Pour

Dim mescomments(6) As String
Dim Indtab As Integer

Indtab = 6
col_ID_Bug = 1
col_Commentaire = 4
col_Nb_Device = 7

mescomments(1) = "A"
mescomments(2) = "B"
mescomments(3) = "C"
mescomments(4) = "D"
mescomments(5) = "B"
mescomments(6) = "E"

    For No_Bug = 1 To Indtab                                                                                                                    'Création du tableau avec nombre de lignes = nombre de bugs
        ligne_bug = No_Bug + 1                                                                                                                 'Obligé de rajouter 1 car le tableau commence à la ligne 2, la ligne 1 étant réservée aux titres
        For Occurence = 1 To Indtab                                                                                                                'Vérification de l'intégralité des bugs
            If Sheets("Résultat").Cells(ligne_bug, col_Commentaire) = mescomments(Occurence) Then
                Sheets("Résultat").Cells(ligne_bug, col_Nb_Device) = Sheets("Résultat").Cells(ligne_bug, col_Nb_Device) + 1
                mescomments(Occurence) = ""
            End If
        Next Occurence
        If mescomments(No_Bug) <> "" Then
            Sheets("Résultat").Cells(ligne_bug, col_ID_Bug) = No_Bug
            Sheets("Résultat").Cells(ligne_bug, col_Commentaire) = mescomments(No_Bug)
            Sheets("Résultat").Cells(ligne_bug, col_Nb_Device) = 1
        End If
    Next No_Bug


Cependant le doublon ne marche pas...J'ai raté un truc mais je ne sais pas quoi ...
A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

En VBA, qui dit doublon, dit Objet Dictionary. C'est tellement pratique...
Va jeter un oeil sur le site de Jacques BOISGONTIER (site qui devrait déjà être dans tes favoris!), et particulièrement ICI
0
lml-mike Messages postés 455 Date d'inscription   Statut Contributeur Dernière intervention   121
 
Merci pour l'information ! Problème résolu !
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut,

De rien.
Ce site est super bien fait. Garde le dans tes favoris si tu dois bosser de temps en temps avec Excel et/ou VBA.
A+
0