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

Résolu/Fermé
lml-mike Messages postés 455 Date d'inscription vendredi 16 février 2007 Statut Contributeur Dernière intervention 18 novembre 2018 - 10 déc. 2013 à 10:48
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 11 déc. 2013 à 07:58
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 759
10 déc. 2013 à 11:20
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 vendredi 16 février 2007 Statut Contributeur Dernière intervention 18 novembre 2018 121
10 déc. 2013 à 17:22
Merci pour l'information ! Problème résolu !
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 759
11 déc. 2013 à 07:58
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