Comment utiliser INDEX MATCH avec Excel VBA

  • Partage Ça
Hugh West

Vous pouvez utiliser les fonctions intégrées aux feuilles de calcul Excel, telles que la fonction Fonction VLOOKUP le Fonction CHOOSE et le Fonction PMT dans votre code VBA et vos applications également. En fait, la plupart de la Excel Les fonctions des feuilles de calcul sont accessibles et utilisables dans VBA code Comme l'utilisation Fonctions de feuille de calcul INDEX & MATCH en code VBA Excel.

Pourquoi voudriez-vous utiliser Excel Feuille de travail dans votre VBA code ? et bien pour étendre la fonctionnalité du code que vous utilisez. De plus, vous n'avez pas besoin de créer vos propres fonctions, à moins que vous n'en ayez vraiment besoin, si la fonctionnalité est déjà là. Tout ce que vous devez faire est d'accéder à la fonction dont vous avez besoin puisqu'elle est déjà là et il n'y a donc pas besoin de réinventer la roue.

Commençons donc par un exemple montrant comment utiliser la fonction INDEX MATCH avec Excel VBA.

Nous allons utiliser le INDEX et MATCH Fonctions sur Excel VBA code Dans ce formulaire, l'utilisateur sélectionne le nom de l'étudiant, puis le sexe de l'étudiant et la couleur des yeux sont récupérés et renvoyés.

Télécharger le cahier d'exercices

Veuillez télécharger le cahier d'exercices pour vous entraîner.

INDEX-MATCH.xlsx

9 étapes faciles pour utiliser INDEX et MATCH dans un code VBA

Le site INDEX et MATCH Les fonctions sont souvent utilisées en combinaison dans les formules, afin d'effectuer des recherches avancées. La combinaison des deux offre certains avantages par rapport aux fonctions suivantes VLOOKUP .

Nous avons déjà couvert en détail, comment utiliser INDEX et MATCH pour effectuer des recherches avancées dans un Excel cahier d'exercices comme une simple formule de feuille de calcul, dans une précédent tutoriel Nous allons maintenant voir comment utiliser l'outil d'évaluation de la qualité de l'eau. INDEX et MATCH Fonctions communes dans VBA code afin de conférer une fonctionnalité similaire à la consultation. Formulaire utilisateur que nous allons créer.

Étape 1 : Appliquer les fonctions INDEX et MATCH dans le jeu de données

  • Nous commençons par deux feuilles dans notre classeur compatible avec les macros, la première étant une feuille vide appelée Formulaire utilisateur l'autre est une feuille appelée Informations sur les étudiants qui contient une gamme montrant les noms des élèves, leur sexe correspondant et la couleur de leurs yeux comme indiqué ci-dessous.

Rappelons rapidement que si nous voulions utiliser la fonction INDEX et MATCH Fonctions dans une formule, dans la feuille de calcul actuelle pour nous donner le genre du nom de l'étudiant que nous voulons rechercher. Nous utiliserions la formule suivante :

=INDEX(B2:B31, MATCH("Diana Graham", A2:A31, 0))

  • En appuyant sur CTRL-ENTER nous obtenons la valeur de Females, comme le genre, comme indiqué ci-dessous.

Etape 2 : Changer le nom de la colonne B en Nom des étudiants

  • Nous allons maintenant nommer la gamme A2 : A31 , Noms des étudiants comme indiqué ci-dessous.

  • Cacher le Informations sur les étudiants en cliquant avec le bouton droit de la souris et en sélectionnant Cachez. C'est une bonne idée de masquer superficiellement les feuilles de calcul back-end qui contiennent les informations que vous ne voulez pas que l'utilisateur modifie ou voie.

Étape 3 : Ouvrir la fenêtre Visual Basic

  • Maintenant que la feuille UserForm est activée, nous allons à Développeur> ; Code> ; Visual Basic afin d'ouvrir le Éditeur Visual Basic (VBE) .
  • Une fois dans le Interface VBE nous allons à Insert, UserForm comme montré ci-dessous.

Étape 4 : modifier les propriétés et ajouter des zones de texte

  • Utilisation de la Propriétés Fenêtre nous renommerons notre formulaire en StudentLookup changez le titre en Recherche d'informations sur les étudiants, changez le titre en Recherche d'informations sur les étudiants. Couleur de fond en bleu clair, et définissez la hauteur à 300 px et la largeur à 350 px. Si la fenêtre des propriétés ne s'affiche pas, appuyez sur la touche F4 de votre clavier pour le voir.

  • Nous allons maintenant insérer une étiquette en utilisant la fonction Boîte à outils (si vous ne pouvez pas voir la boîte à outils, pour une raison quelconque, allez dans Affichage, Boîte à outils ), changez la légende en Choisir un élève et nous changerons le champ Couleur de fond en blanc dans ce cas. Nous allons définir la police à Géorgie le style de police à en gras la taille de la police à 12 et le centre aligner le texte. L'effet spécial utilisé sera le suivant 1- fmSpecialEffectRaised comme indiqué ci-dessous.

  • Nous allons maintenant insérer une boîte combo sous l'étiquette, que nous appellerons cmdStudentName et dont le nom sera le suivant RowSource , type Noms des étudiants.

  • Afin de voir l'effet du réglage de la RowSource de la boîte combo, Cliquez sur la course Sous/Formulaire d'utilisateur bouton .
  • Maintenant, en raison de la mise en place de la RowSource à la plage nommée, lorsque l'utilisateur clique sur la flèche déroulante du formulaire utilisateur, la boîte combo affiche automatiquement les noms des étudiants de la plage nommée, comme indiqué ci-dessous.

  • Fermez le UserForm en cliquant sur le bouton de fermeture. Appuyez sur Alt-F11 afin de revenir au VBE .
  • Une fois de retour dans la VBE ajoutez une autre étiquette au UserForm (en dessous de la boîte combo) et modifiez l'attribut Légende à Genre et nous allons changer le Couleur de fond en blanc dans ce cas. Nous allons définir la police à Géorgie le style de police à en gras la taille de la police à 12 et le centre aligner le texte. L'effet spécial utilisé sera le suivant 1- fmSpecialEffectRaised comme indiqué ci-dessous.

  • Créer une zone de texte sous le Genre étiquette et le nommer txtGender .
  • Ajouter un autre label appelé Oeil Couleur et une zone de texte nommée txtEyeColour comme indiqué ci-dessous. Utilisez les mêmes propriétés pour l'étiquette que pour les deux autres étiquettes précédemment ajoutées au formulaire, afin de s'assurer que l'option Formulaire utilisateur a un aspect cohérent.

  • Maintenant Sélectionnez tous les contrôles, ajoutés à la Formulaire utilisateur jusqu'à présent en utilisant la touche de contrôle.

  • Centre horizontalement, comme indiqué ci-dessous.

Lire la suite : Comment utiliser la formule INDEX MATCH dans Excel (9 exemples)

Lectures similaires

  • Excel INDEX MATCH If Cell Contains Text (si la cellule contient du texte)
  • Comment utiliser la formule INDEX-MATCH dans Excel pour générer des résultats multiples ?
  • Indexer et additionner plusieurs lignes dans Excel (3 façons)
  • Apprendre la programmation et les macros Excel VBA (tutoriel gratuit - étape par étape)
  • 22 exemples de macros en Excel VBA

Étape 5 : Ajouter un bouton à partir de la boîte à outils

  • Suivant, Ajouter un bouton au formulaire à l'aide de la fonction Boîte à outils . Changement le site Nom du bouton pour cmdLookUp le Couleur de fond à l'orange clair, gardez le Tahoma police et changement le style à en gras et enfin, changez le Légende du bouton pour Regardez en haut Étudiant Détails comme indiqué ci-dessous.

Étape 6 : Insérer le code VBA

  • Cliquez à droite sur le bouton nouvellement ajouté, et sélectionnez Voir Code .

  • Entrez le code suivant pour l'événement de clic du bouton :

 Dim a As Variant Dim b As Variant Dim c As Variant a = cmdStudentName.Value Sheets("StudentInformation").Activate If a = "" Then b = "" Let txtGender.Text = b c = "" Let txtEyeColour.Text = c Else b = Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("B2:B31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) c =Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("C2:C31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) Let txtEyeColour.Text = c End If 

Nous commençons par déclarer trois variables et en affectant le type de données de variante à ces types de données de variante déclarés. Le type de données de variante est un bon type de données pour commencer, car lorsqu'on travaille avec des feuille de travail fonctions C'est pourquoi vous devez utiliser le type de données variante lorsque vous débutez.

Par la suite, il est conseillé d'utiliser l'un des autres types de données plus spécifiques tels que entier ou chaîne. Pour un code plus avancé et plus long, le type de données variante n'utilise pas la mémoire aussi efficacement que les autres types de données.

Variable a tirer la valeur de l'option que l'utilisateur sélectionne dans la liste déroulante de l'écran. Formulaire utilisateur S'il n'y a pas de sélection, alors toutes les autres zones de texte sont affichées. vide .

Si vous sélectionnez un nom d'élève dans la liste combo boîte sur le Formulaire d'utilisateur, alors la variable b tire une valeur en utilisant le INDEX Feuille de travail Fonction en combinaison avec la MATCH Fonction dans le VBA comme indiqué.

Elle recherche la valeur en utilisant fondamentalement la même syntaxe que la fonction de feuille de calcul. VBA le VBA IntelliSense dans ce cas particulier n'est pas très intuitif Il est donc recommandé de se familiariser avec la syntaxe glanée dans les feuilles de travail. Variable c tire la valeur en utilisant le INDEX Feuille de travail Fonction en combinaison avec le MATCH Fonction dans le VBA lorsque l'utilisateur sélectionne une option dans la liste déroulante.

Variable b atteint la valeur de la genre colonne dans la feuille de calcul, alors que variable c obtient la valeur de la colonne Couleur des yeux dans la feuille de calcul.

La zone de texte "sexe" est remplie avec b et la boîte de texte de la couleur des yeux est remplie avec la valeur de c La valeur de l'entreprise.

Lire la suite : Événements Excel VBA (Guide complet)

Étape 7 : Insérer un bouton de commande

  • Maintenant, allez dans la feuille de calcul appelée Formulaire utilisateur dans votre cahier d'exercices. Format comme indiqué ci-dessous, et insérer l'image fournie par ExcelWIKI .

  • Aller à Développeur> ; Contrôles> ; Insertion> ; Contrôles ActiveX.

  • Insérer un bouton comme indiqué.

  • Avec le bouton sélectionné, aller à Développeur> ; Contrôles> ; Propriétés .

  • Changement le site Nom du bouton pour cmdShowForm et le Légende à Consulter le site Informations sur les étudiants .

Étape 8 : Afficher le code de consultation

  • Cliquez à droite sur le bouton et sélectionnez Afficher le code comme indiqué ci-dessous.

  • Entrez le code suivant :
 Private Sub cmdShowForm_Click() StudentLookup.Show End Sub 

Étape 9 : Exposer le résultat final

  • Retourner à à la feuille de travail. Assurez-vous que la case non cochée Design Mode .
  • Cliquez sur le bouton afin d'afficher le formulaire.

  • Sélectionnez le nom d'un élève en utilisant le boîte combo Le code renvoie automatiquement le sexe et la couleur des yeux de l'étudiant.

N'oubliez pas de sauver votre classeur en tant que classeur activé par macro si vous ne l'avez pas déjà fait et voilà, nous utilisons Fonctions de feuille de calcul INDEX & MATCH dans Excel VBA code afin de créer un formulaire de consultation.

Lire la suite : Formule Excel INDEX-MATCH pour renvoyer plusieurs valeurs horizontalement

Conclusion

Excel a de nombreuses fonctions utiles fonctions de la feuille de calcul qui peut être utilisé dans VBA comme, comme, en utilisant Fonctions de feuille de calcul INDEX & MATCH en code VBA Excel. Ces fonctions vous permettront d'étendre votre VBA code. Si vous savez déjà comment ils fonctionnent dans une norme Excel alors la courbe d'apprentissage n'est pas si grande en adaptant les connaissances à la feuille de travail. VBA L'accès aux fonctions de la feuille de travail, dans sa propre langue, n'est pas possible. VBA code peut représenter un véritable gain de temps, car il n'est pas nécessaire de développer des fonctions personnalisées pour une fonctionnalité déjà existante.

N'hésitez pas à commenter et à nous dire si vous utilisez des fonctions de feuille de calcul dans votre code VBA et vos applications.

Section de révision : Testez votre compréhension

1) Créez une liste simple dans la colonne A de trois articles, à savoir des mandarines, des carottes et des oranges, puis dans la cellule située à côté de chaque article de la colonne B, indiquez si les articles de la colonne A sont des fruits ou des légumes. Une fois que vous avez terminé la création de vos données échantillons, utilisez la fonction INDEX & ; MATCH fonction de combinaison pour indiquer si les carottes sont des fruits ou des légumes.

2) Utilisez cet ensemble de données d'ESPN sur les entraîneurs principaux de la NFL et l'équipe respective qu'ils entraînent. Créez un formulaire utilisateur qui permet à un utilisateur d'entrer le nom d'un certain entraîneur dans une zone de texte. Ensuite, l'équipe qu'il entraîne est affichée dans une autre zone de texte lorsque l'utilisateur clique sur soumettre. Utiliser INDEX & ; MATCH combinaison de fonctions de feuille de calcul dans votre code VBA.

Hugh West est un formateur et analyste Excel très expérimenté avec plus de 10 ans d'expérience dans l'industrie. Il est titulaire d'un baccalauréat en comptabilité et finance et d'une maîtrise en administration des affaires. Hugh a une passion pour l'enseignement et a développé une approche pédagogique unique qui est facile à suivre et à comprendre. Sa connaissance approfondie d'Excel a aidé des milliers d'étudiants et de professionnels du monde entier à améliorer leurs compétences et à exceller dans leur carrière. Grâce à son blog, Hugh partage ses connaissances avec le monde, offrant des tutoriels Excel gratuits et une formation en ligne pour aider les particuliers et les entreprises à atteindre leur plein potentiel.