VBA - Remplir le tableau avec des valeurs uniques à partir de la colonne

Ce didacticiel vous apprendra à remplir un tableau avec des valeurs uniques à partir d'une colonne en VBA.

Remplir le tableau avec des valeurs uniques à partir de la colonne

Prendre une liste de valeurs d'une feuille Excel dans un tableau consiste à parcourir les lignes dans Excel et à remplir le tableau.

Considérez la liste de clients suivante dans une feuille Excel.

En utilisant une boucle, nous pourrions remplir un tableau en VBA. Cependant, une boucle standard parcourra chaque ligne, y compris les lignes en double et vous vous retrouverez avec des valeurs en double dans votre tableau.

La solution consistant à parcourir les cellules et à remplir un objet Collection avec les valeurs en tant qu'objet de collection n'autorisera pas les doublons. Vous pouvez ensuite utiliser cet objet de collection pour remplir votre tableau.

1234567891011121314151617181920212223242526 Sous-peuplerArrayUnique()Dim StrCustomers() en tant que chaîneDim Col comme nouvelle collectionDim valCell As StringDiminuer en tant qu'entierDim n en tant qu'entier'compter les lignes de la plagen = Range("A1", Range("A1").End(xlDown)).Rows.Count'Remplir la collection temporaireEn cas d'erreur Reprendre ensuitePour i = 0 à nvalCell = Range("A1").Offset(i, 0).ValeurCol.Ajouter valCell, valCellEnsuite jeErr.EffacerEn cas d'erreur GoTo 0'Redimensionner nn = nombre de col.'Redéclarer le tableauReDim StrCustomers (1 à n)'Remplir le tableau en parcourant la collectionPour i = 1 To Col.CountStrClients(i) = Col(i)Ensuite jeDebug.Print Join(StrCustomers(), vbCrLf)Fin du sous-marin

Remplir un tableau avec des valeurs uniques - Fonction

L'exemple ci-dessus a montré une procédure qui effectuerait les actions souhaitées. Mais à la place, vous préférerez peut-être une fonction portable pour effectuer la tâche :

123456789101112131415161718192021222324 Fonction CreateUniqueList(nStart as Long, nEnd as long) as VariantDim Col comme nouvelle collectionFaible arrTemp() Comme Chaîne de caractèresDim valCell As StringDiminuer en tant qu'entier'Remplir la collection temporaireEn cas d'erreur Reprendre ensuitePour i = 0 à nEndvalCell = Range("A" & nStart).Offset(i, 0).ValeurCol.Ajouter valCell, valCellEnsuite jeErr.EffacerEn cas d'erreur GoTo 0'Redimensionner nnEnd = Col.Count'Redéclarer le tableauReDim arrTemp(1 à nEnd )'Remplir le tableau temporaire en parcourant la collectionPour i = 1 To Col.CountarrTemp(i) = Col(i)Ensuite je'retourne le tableau temporaire au résultat de la fonctionCréerListeUnique = arrTemp()Fonction de fin

Pour utiliser la fonction, vous devrez l'appeler à partir d'une sous-procédure :

123456789 Tableau de sous-peuplement()Dim StrCustomers() en tant que chaîneDim strCol comme collectionDim n As Long'compter les lignes de la plagen = Range("A1", Range("A1").End(xlDown)).Rows.Count'exécute la fonction pour créer un tableau de valeurs uniquesstrCustomers() = CreateUniqueList(1,n)Fin du sous-marin
wave wave wave wave wave