Ce tutoriel vous apprendra comment supprimer les doublons d'un tableau en VBA.
Supprimer les doublons
Le moyen le plus simple de supprimer les doublons d'un tableau VBA est d'attribuer les valeurs du tableau à une collection VBA, puis de transmettre les valeurs à un tableau. Les collections n'autorisent pas les valeurs en double et, par conséquent, en utilisant une collection, nous pouvons supprimer les doublons d'un tableau. Nous avons créé une fonction pour effectuer cette tâche :
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | Function ArrayRemoveDups (MyArray As Variant) As VariantDim nFirst As Long, n Last As Long, i As LongÉlément faible en tant que chaîneDim arrTemp() en tant que chaîneDim Coll comme nouvelle collection'Obtenir les positions du premier et du dernier tableaunFirst = LBound(MyArray)nDernier = UBound(MonTableau)ReDim arrTemp(nFirst To nLast)'Convertir le tableau en chaînePour i = nPremier à nDerniertableauTemp(i) = CStr(MonTableau(i))Ensuite je'Remplir la collection temporaireEn cas d'erreur Reprendre ensuitePour i = nPremier à nDernierColl.Ajouter arrTemp(i), arrTemp(i)Ensuite jeErr.EffacerEn cas d'erreur GoTo 0'Redimensionner le tableaunLast = Coll.Count + nFirst - 1ReDim arrTemp(nFirst To nLast)'Remplir le tableauPour i = nPremier à nDernierarrTemp(i) = Coll(i - nPremier + 1)Ensuite je'Tableau de sortieArrayRemoveDups = arrTempFonction de finSous-ArrTest()Dim strNames (1 à 4) en tant que chaîneDim outputArray() en tant que chaîneDim j'aussi longtempsÉlément faible en tant que variante'Définir les valeurs initiales du tableaustrNames(1) = "Shelly"strNames(2) = "Steve"strNames(3) = "Neema"strNames(4) = "Steve"'Fonction de duplication d'appeloutputArray = ArrayRemoveDups(strNames)'Valeurs de sortie dans la fenêtre immédiate (CTRL + G)Pour chaque élément dans outputArrayDebug.Print itemProchain pointFin du sous-marin |
Remarque : dans l'exemple, nous avons forcé notre tableau à démarrer à 1 (pas 0). Si votre tableau commence à 0, vous devrez légèrement modifier le code.
Notez que nous convertissons le contenu du tableau en chaîne. Si nécessaire, vous pouvez reconvertir les chaînes en nombres entiers une fois le processus terminé.