Android

 Comment utiliser l'objet de dictionnaire dans VBA pour modifier la structure d'un tableau Excel

Vous serez souvent confronté à une table dans laquelle la structure de données rend difficile le filtrage des informations dont vous avez besoin. Cela ne signifie pas que la table a été mal configurée, mais que votre analyse n'a pas été anticipée.

L’objet dictionnaire de VBA est l’outil idéal pour structurer le tableau, il sera donc plus utile. Regardons un exemple des résultats des tests des étudiants, mais il pourrait éventuellement s'agir d'une liste des achats des clients:

Nom Score du test
john Test1 10
Andrew Test1 22
john Test2 12
Andrew Test2 25

Bien que ce tableau puisse être utile, vous devez parfois tracer les scores comparatifs et ce format peut être préféré:

Nom Test1 Test2
john 10 12
Andrew 22 25

Utilisation de l'objet de dictionnaire VBA

L'objet dictionnaire est similaire à un tableau ou à une collection, mais avec plus de fonctionnalités et est beaucoup plus facile à comprendre. Une fois que vous avez créé un dictionnaire, la syntaxe de base pour ajouter un élément est la suivante:

clé dict1.add, élément

le clé La propriété est une valeur unique pour l'élément que vous enregistrez dans le dictionnaire. Par conséquent, si vous ajoutez un nom d'étudiant, le code pourrait être le suivant:

dict1.add "john", testscores

Nous allons faire deux choses pour changer notre tableau des résultats des tests:

  1. Créer un dictionnaire de noms d'étudiants uniques
  2. Associez les résultats du test au nom de l'étudiant

Identifier des valeurs uniques avec l'objet dictionnaire

Nous allons tirer parti du fait que clé les valeurs doivent être uniques en créant une liste de noms d'étudiants, puis en ajoutant les résultats au test. L'objectif du code est de créer des tableaux de noms d'étudiants et de résultats de tests, ainsi qu'un tableau de noms de tests.

Tout d'abord, nous allons créer une instance de dictionnaire, sélectionner la plage et créer une variable pour contenir les noms des tests.

Set dict1 = Nouveau dictionnaire
dict1.CompareMode = BinaryCompare

Feuilles (1) .Activer
Range ("a1"). CurrentRegion.Columns (1) .Select
tests = ""

Nous pouvons maintenant parcourir la table et définir des valeurs pour nom, nom du test et score.

Pour x = 2 à Selection.Count
myName = Selection (x) .Text
myTest = Selection (x) .Offset (0, 1) .Text
myScore = Selection (x) .Offset (0, 2) .Value

& # 39; ajouter le nom du test à des tests si ce n'est déjà fait
Si InStr (tests, myTest) = 0 Ensuite, tests = tests & myTest & "|"

Nous utiliserons le casse choisi pour déterminer si le nom de l'étudiant a déjà été ajouté. Sinon, nous ajouterons le nom et le premier résultat de test à l'élément de dictionnaire de l'étudiant.

Ensuite, surtout, si le nom de l’étudiant existe dans le dictionnaire, nous ajouterons simplement la partition au texte associé au nom de l’étudiant.

Sélectionnez le cas dict1.Exists (myName)
Affaire Faux
dict1.Add monNom, monNom & "|" & mon score
Affaire True
dict1 (myName) = dict1 (myName) & "|" & mon score
Fin Sélectionnez
Suivant

Nous avons maintenant une série de tuyaux "|" chaînes de texte délimitées à convertir en une nouvelle table, ce que vous pouvez effectuer de différentes façons, par exemple dans une nouvelle feuille:

ActiveCell.Value = "Nom |" et tests
Pour chaque c dans dict1
ActiveCell.Offset (1, 0) .Activer
ActiveCell.Value = dict1 (c)
Suivant

Ensuite, nous pouvons utiliser l'outil Texte en colonne d'Excel ou du code VBA pour convertir les nouvelles données en tableau.

Résumé

L’objet dictionnaire de VBA est un outil puissant et flexible pour traiter les données. Certains codes créatifs et bien conçus peuvent vous faire économiser de nombreuses heures de frustration et augmenter votre productivité.


Source by Andy L Gibson

Afficher plus

Articles similaires

Laisser un commentaire

Bouton retour en haut de la page

Adblock détecté

S'il vous plaît envisager de nous soutenir en désactivant votre bloqueur de publicité