Problème en VBA avec la fonction MATCH

  • Initiateur de la discussion Initiateur de la discussion Chloulou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Chloulou

XLDnaute Occasionnel
Bonjour le forum,
je vous sollicite de nouveau...
en fait j'ai créé une fonction toute simple, avec la fonction MATCH

Code:
Public Function FindFirst(MaPlageRecherche As Range, Critere As Variant)

'Fonction réalisée  le 26/07/2007
'Objectif : Trouver dans une plage de cellules (plage recherche) une valeur, critère (rigoureusement égale) et renvoyer la ligne de la cellule correspondante

    Dim MyVar As Double
    Dim MaPlage As Range
    Dim NumeroPremiereLigne As Long
    
    Set MaPlage = MaPlageRecherche
    NumeroPremiereLigne = MaPlageRecherche.Row '
    
    MyVar = Application.WorksheetFunction.Match(Critere, MaPlage, 0) + (NumeroPremiereLigne - 1) 'car match renvoie une référence relative à la plage de recherche
    
    FindFirst = MyVar
        
End Function

Cependant cette fonction ne marche que quand elle veut. En gros, quand la fonction MATCH ne trouvera pas d'occurence du critere, ca plante avec une erreur 1004, sinon ca passe. Et des fois ca passe aussi, si elle trouve pas le critere...
je sais ps trop ou donner de la tete avec ce probleme, alors a vous de jouer si vous le voulez.

@+
 
Re : Problème en VBA avec la fonction MATCH

Salut Chloulou,

Peut-être en utilisant : On Error

Code:
[LEFT]Public Function FindFirst(MaPlageRecherche As Range, Critere As Variant)
Dim MyVar As Double
Dim MaPlage As Range
Dim NumeroPremiereLigne As Long[/LEFT]
 
[LEFT]Set MaPlage = MaPlageRecherche
NumeroPremiereLigne = MaPlageRecherche.Row '[/LEFT]
 
[LEFT]On Error Resume Next  ' Si erreur on continue sans s'arrêter
MyVar = Application.WorksheetFunction.Match(Critere, MaPlage, 0) + (NumeroPremiereLigne - 1) 'car match renvoie une référence relative à la plage de recherche
On Error Goto 0
[COLOR=blue][B]If MyVar <> 0 then[/B][/COLOR]
 FindFirst = MyVar
Else
 FindFirst = "Pas Trouvé"
End If
End Function[/LEFT]

A tester 😉
 
Dernière modification par un modérateur:
Re : Problème en VBA avec la fonction MATCH

MATCH, permet de trouver une valeur recherchée.

Lorsqu'aucune valeur n'est trouvée, Excel retourne forcément une erreur !

Pour éviter cela, il faut désactiver temporairement l'affichage des erreurs.

ATTENTION ! Une erreur est présente dans mon code, ligne en bleue à changer
NZ() ne fonctionne que sur Access, oups ....

Voilà 😀
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
17
Affichages
1 K
Retour