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
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    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 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    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é
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    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 éclairé Avatar de ofinot
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 98
    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 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    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
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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