php hit counter

Comment Faire Une Fonction Equiv Sous Vba


Comment Faire Une Fonction Equiv Sous Vba

Ah, VBA... Le langage discret qui se cache derrière nos feuilles Excel, prêt à transformer des tâches fastidieuses en opérations quasi-magiques. On en parle peut-être moins que des langages comme Python ou JavaScript, mais croyez-moi, une fois qu'on l'a dompté, VBA devient un allié précieux. Aujourd'hui, on s'attaque à un défi particulier : recréer l'équivalent de la fonction EQUIV sous VBA. Accrochez-vous, on va décortiquer ça ensemble !

Mais, au fait, c'est quoi EQUIV ?

Pour ceux qui ne seraient pas familiers, la fonction EQUIV (MATCH en anglais) est un peu le détective d'Excel. On lui donne une valeur à chercher, une plage de cellules où fouiller, et elle nous renvoie la position de cette valeur dans la plage. Imaginez, c'est comme demander à un bibliothécaire où se trouve un livre spécifique sur une étagère – il vous indique le numéro de l'étagère (la position) et non le livre lui-même.

Par exemple, si dans la plage A1:A5, on a les valeurs {"Pomme", "Banane", "Orange", "Kiwi", "Mangue"} et qu'on cherche "Orange", la fonction EQUIV nous renverra 3, car "Orange" est la troisième valeur de la plage.

Passons à l'action : Le code VBA

Alors, comment reproduire ça en VBA ? Voici une fonction simple et efficace :


Function EquivVBA(valeurRecherchée As Variant, plageRecherche As Range) As Variant
    Dim i As Long
    For i = 1 To plageRecherche.Rows.Count
        If plageRecherche.Cells(i, 1).Value = valeurRecherchée Then
            EquivVBA = i
            Exit Function
        End If
    Next i
    EquivVBA = CVErr(xlErrNA) 'Retourne #N/A si la valeur n'est pas trouvée
End Function

Décortiquons ce code :

VBA - Comment Utiliser les Fonctions des Feuilles de Calcul (et une
VBA - Comment Utiliser les Fonctions des Feuilles de Calcul (et une
  • Function EquivVBA(valeurRecherchée As Variant, plageRecherche As Range) As Variant : C'est la déclaration de notre fonction. Elle prend en entrée la valeur à chercher (valeurRecherchée) et la plage de cellules où chercher (plageRecherche). Elle renvoie un Variant, ce qui permet de gérer les cas où la valeur n'est pas trouvée (on renverra une erreur Excel).
  • Dim i As Long : On déclare une variable 'i' de type Long pour parcourir les lignes de la plage.
  • For i = 1 To plageRecherche.Rows.Count : On boucle sur chaque ligne de la plage. plageRecherche.Rows.Count nous donne le nombre total de lignes.
  • If plageRecherche.Cells(i, 1).Value = valeurRecherchée Then : C'est le cœur de la fonction. On vérifie si la valeur de la cellule courante (ligne 'i', colonne 1) est égale à la valeur recherchée. Notez le .Value, essentiel pour comparer les valeurs et non les références aux cellules.
  • EquivVBA = i : Si on trouve la valeur, on affecte sa position (le numéro de la ligne 'i') à la fonction EquivVBA.
  • Exit Function : On sort de la fonction dès qu'on a trouvé la valeur. Inutile de continuer à chercher !
  • EquivVBA = CVErr(xlErrNA) : Si on arrive à la fin de la boucle sans trouver la valeur, on renvoie l'erreur Excel #N/A, comme le ferait la fonction EQUIV standard.

Comment utiliser cette fonction ?

C'est simple ! Ouvrez l'éditeur VBA (Alt + F11 dans Excel), insérez un nouveau module (Insertion > Module), et copiez-collez le code. Ensuite, vous pouvez utiliser la fonction directement dans votre feuille de calcul comme ceci :

=EquivVBA("Kiwi",A1:A5)

La fonction EQUIV | Formation Excel
La fonction EQUIV | Formation Excel

Si la plage A1:A5 contient {"Pomme", "Banane", "Orange", "Kiwi", "Mangue"}, cette formule renverra 4.

Améliorations possibles

Cette fonction est un bon point de départ, mais on peut l'améliorer :

Fonction VBA - Appel, Valeur de Retour et Paramètres - Automate Excel
Fonction VBA - Appel, Valeur de Retour et Paramètres - Automate Excel
  • Gérer la recherche sur plusieurs colonnes : Modifier le code pour parcourir non seulement les lignes mais aussi les colonnes d'une plage plus large.
  • Ajouter un argument pour le type de correspondance : Comme la fonction EQUIV, permettre une correspondance exacte (0), inférieure (1) ou supérieure (-1).
  • Optimiser la performance : Pour les très grandes plages, envisager d'utiliser des méthodes de recherche plus rapides, comme la recherche binaire (si la plage est triée).

Un peu de culture Excel

Saviez-vous que la première version de Microsoft Excel est sortie en 1985 ? C'était une révolution pour l'époque, et même si les tableurs ont évolué depuis, les bases restent les mêmes. Et VBA, qui est apparu plus tard, a vraiment décuplé les possibilités d'automatisation.

Aujourd'hui, Excel (et VBA) sont utilisés dans tous les secteurs, de la finance à la logistique, en passant par le marketing. C'est un outil essentiel pour toute personne qui travaille avec des données.

En conclusion

Créer sa propre fonction EQUIV sous VBA, c'est bien plus qu'un simple exercice technique. C'est une façon de comprendre en profondeur comment fonctionnent les outils qu'on utilise au quotidien. C'est un peu comme apprendre à cuisiner son plat préféré au lieu de simplement le commander au restaurant : on gagne en autonomie et en satisfaction. Alors, n'hésitez pas à expérimenter, à modifier le code, et à vous approprier VBA. Vous serez surpris de ce que vous pouvez accomplir !

La fonction EQUIV | Formation Excel Comment Faire Une Recherchev Sur Excel Fonction EQUIV Excel : tutoriel et exemples [2024] Fonction RECHERCHEV inversé : étape par étape Excel : Fonction EQUIV - Trouver La Position d'Une Valeur Fonction EQUIV Excel: Guide pratique avec exemples [2025] INDEX et EQUIV : faire une recherche à plusieurs conditions [XL-2010] Parametre de Plage Variable dans une fonction EQUIV avec INDEX EQUIV avec plusieurs critères - Formule Excel Fonction Excel : EQUIV, pour identifier une position - YouTube VBA - Plusieurs Instructions If (Imbriquées) - Automate Excel

You might also like →