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

Macros et VBA Excel Discussion :

[VBA-E] Enlever les doublons dans un tableau et regarder si une variable y est..


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 174
    Points : 62
    Points
    62
    Par défaut [VBA-E] Enlever les doublons dans un tableau et regarder si une variable y est..
    Bonjour,

    J'ai deux questions sur les tableaux en vba.

    J'ai une fonction qui remplit un tableau avec des chaines de caratcères. Une fois rempli le tableau contient forcément des doublons. Existe-t-il un moyen simple pour les supprimer.

    Deuxième question :

    Je lis une valeur dans une cellule excel. Comment vérifier que la valeur de la cellule est présente dans un tableau. Je pourrais parcourir pour chaque valeur lu le tableau du début à la fin mais il y a peut-être un moyen plus simple et plus performant que 1000 tours de boucles (un genre de IN(montab) ?)

    Merci d'avance...

  2. #2
    Membre habitué Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Points : 181
    Points
    181
    Par défaut
    Bonjour,
    Pour la deuxième question, tu peux essayer Find , ça devrait convenir
    Pour la première, je n'en connais pas personnellement

    Cwain

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 103
    Points : 98
    Points
    98
    Par défaut
    Pour le 1er, si tu as tous tes élts ds un tableau de variant ou collection, tu peux le trier et après éliminer les doublons.
    t'as des algos ici selon ton besoin http://docvb.free.fr/vbplus/Tris/Tri.php#Tri5

    Si tu l'as dans un worksheet, tu peux utiliser la fonction "sort" pour les trier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'sort les indices par la ponderation en % de leur composants
        Range("Y1:AD" & Range("A1").End(xlDown).Row).Select
        Selection.Sort Key1:=Range("Y1"), Order2:=xlDescending _
        , Header:=xlNo, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom
    ici un petit exemple, après avoir trier ta table, la vie sera tranquille pour éliminer les doublons

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir


    ci joint d'autre possiblités


    pour recréer une liste sans doublons:

    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
    Sub FiltreDoublons()
        Dim Cell As Range
        Dim i As Integer
        Dim Un As New Collection
     
        On Error Resume Next
            'Recherche les doublons dans la plage A1:A15
            For Each Cell In Range("A1:A15")
                'Utilise la propriété "Key" des collections qui
                'n'acceptent que des valeurs uniques.
                Un.Add Cell, CStr(Cell)
            Next Cell
        On Error GoTo 0
     
        For i = 1 To Un.Count
            'Afiche le résultat sans doublon dans la colonne B
            Cells(i, 2) = Un.Item(i)
        Next i
    End Sub


    Vérifier l'existence d'une donnée dans une plage:

    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
    Sub VerifieExistenceDonnee()
        Dim Plage As Range
        Dim i As Integer
     
        Set Plage = Range("A1:A15")
     
        On Error Resume Next
        i = Application.Match("mimi", Plage, False)
        On Error GoTo 0
     
        If i = 0 Then
            MsgBox "Pas trouvé"
            Else
            MsgBox "Trouvé sur la ligne: " & i
        End If
    End Sub


    michel

Discussions similaires

  1. Réponses: 20
    Dernier message: 22/02/2013, 20h42
  2. Enlever les doublons dans un tableau
    Par supertoms dans le forum VBA Access
    Réponses: 4
    Dernier message: 02/06/2008, 23h43
  3. [Tableaux] Rechercher les doublons dans un tableau
    Par jym_22 dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2006, 09h47
  4. [VBA-E] Exclure les doublons dans un sous-total
    Par steps5ive dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/07/2006, 13h07
  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