Un étrange problème que je n'arrive pas a résoudre :
Mon premier fichier excel contient des données. Au sein d'un deuxième fichier je cherche a faire une recherche dans ces données avec la fonction rechercherv.
Cela fonctionne parfaitement avec l'instruction:
=RECHERCHERV(value; NOM_PLAGE; NOM_COLONNE; FAUX)
(NOM_PLAGE et NOM_COLONNE sont des noms définis dans le deuxième fichier, et font directement référence au premier)
Je voulais faire la même chose en VBA, en utilisant la fonction "VLookup". Je tape donc le code suivant:
Code:
Function retrieveData(value As Variant, plage As Variant, columnIndex As Integer) As Variant
Dim result As Variant
result = Application.WorksheetFunction.VLookup(value, plage, columnIndex, False)
'differents tests sur result avant de retourner une valeur
End Function
Et dans excel je tape maintenant :
=retrieveData(value; NOM_PLAGE; NOM_COLONNE)
Autant dire que je n'ai a priori rien change. Pourtant les choses deviennent étrange: la fonction VBA fonctionne uniquement quand le fichier 1 contenant les données est ouvert, mais pas quand il est fermé. La méthode directe dans excel avec RECHERCHERV fonctionne dans les deux cas.
Pourquoi cette différence ?
En debuggant dans VBA il semblerait que le problème vienne de "plage", qui vaut "Error 2036" au moment ou je lance VLookup (évidemment uniquement dans le cas ou le fichier 1 est ferme). "columnIndex" a quant a lui correctement été récupéré. Je precise que NOM_PLAGE fait reference a tout le tableau d'une des feuille du fichier 1.
Voila j'espère que je suis a peu près clair et que j'ai respecte les règles du forum pour mon premier post !
Merci d'avance pour votre aide.
Re : Etrange difference d'effet entre vlookup en VBA et rechercherv en excel
Merci à vous deux pour vos réponses, et désolé de répondre aussi tard. Je suis un peu débordé en ce moment.
Problème hélas toujours pas résolu ! Comme suggéré j'ai essayé de supprimer le reste du code de ma fonction et de ne garder que le vlookup, mais ca ne fonctione toujours pas. J'ai essayé sur deux ordinateurs différents et le problème est le même: quand le fichier 2 avec les données à récupérer est ouvert, tout fonctionne; quand il est fermé, seul rechercherv fonctionne mais pas la fonction VBA...
Si quelqu'un a une autre idée je suis preneur (et j'ai du temps aujourd'hui et demain donc je pourrais tester et répondre rapidement !).
Re : Etrange difference d'effet entre vlookup en VBA et rechercherv en excel
Un très grand merci job !
Ça fonctionne désormais. Effectivement le problème venait bien du fait que la plage de données n'était pas délimitée (j'avais sélectionné toute le feuille source).
Faut que je mette "Résolu" qq part ?