IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Enlever les doublons dans un tableau


Sujet :

VBA Access

  1. #1
    Débutant
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    Points : 66
    Points
    66
    Par défaut Enlever les doublons dans un tableau
    Salut à tous, je n'arrive pas à coder une fonction qui me permettrai d'enlever les doublons d'un tableau.
    Par exemple j'ai un tableau de type string, qui a les valeurs :

    (a;b;c;d;e;e;f;a;b;t;e)

    et je veux qu'il se transforme en :

    (a;b;c;d;e;f;t)

    Merci d'avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 640
    Points : 34 350
    Points
    34 350
    Par défaut
    Salut,
    Tu utilises un tableau pour le moment ?
    Si tu passes ce tableau dans une table, tu fais une requête et le tour est joué

  3. #3
    Débutant
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    Points : 66
    Points
    66
    Par défaut
    Merci je ferais ça dans le pire des cas mais pour l'instant j'aimerai y arriver seulement avec un tableau car je n'ai pas envi de faire une table tampon.
    Merci d'avance !

  4. #4
    Membre régulier Avatar de ofinot
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 98
    Points : 100
    Points
    100
    Par défaut
    Je pense qu'essayer de modifier le tableau n'est pas la meilleure solution.

    Le plus simple est, à mon avis d'utiliser un second tableau résultat que tu rempliras au fur et à mesure. Je m'explique :

    Tu as ton tableau T1, tu en créé un nouveau T2, vide.
    Ensuite pour chaque élément de T1, tu regardes s'il est présent dans T2, et si cela n'est pas le cas, tu l'y ajoute.

    A la fin T2 contiendra les valeurs que tu souhaites.

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 351
    Points : 23 816
    Points
    23 816
    Par défaut
    Autre passe passe, tu peux utiliser une Collection, ça fera le même travail qu'une table :-).

    sinon ce n'est pas très complex, si tu ne veux pas que tes éléments soient triés voici une solution 100% pure tableau. Pas la plus optimale mais elle marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    Private Sub SupprimerDouble()
    Dim tEntree As Variant: tEntree = Array("a", "b", "c", "d", "e", "e", "f", "a", "b", "t", "e")
    Dim tSortie() As String: ReDim tSortie(0)
    Dim trouve As Boolean
     
    Dim i As Integer
    Dim j As Integer
     
    For i = LBound(tEntree) To UBound(tEntree)
     
     
        trouve = False
     
        If Not IsNull(tSortie) Then
     
            For j = LBound(tSortie()) To UBound(tSortie())
     
                If tEntree(i) = tSortie(j) Then
                    trouve = True
                    Exit For
                End If
     
            Next j
     
        End If
     
        If Not trouve Then
     
            If i <> LBound(tEntree) Then
                ReDim Preserve tSortie(UBound(tSortie) + 1)
            End If
     
            tSortie(UBound(tSortie)) = tEntree(i)
     
        End If
     
    Next i
     
    Debug.Print Join(tSortie, ",")
     
    End Sub

Discussions similaires

  1. Réponses: 20
    Dernier message: 22/02/2013, 20h42
  2. Enlever les doublons dans une liste
    Par gefrey54 dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 14/09/2007, 17h46
  3. Réponses: 3
    Dernier message: 19/03/2007, 18h29
  4. [Tableaux] Rechercher les doublons dans un tableau
    Par jym_22 dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2006, 09h47
  5. Eliminer les doublons dans un tableau d'entiers
    Par engi dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 21/03/2006, 13h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo