Bonjour,
Je développe une application avec un classeur excel contenant macros et formulaires et trois classeurs de données, tous dans le même répertoire.
Je veux utiliser cette fonction (Vlookup alias rechercheV) en macro pour, à partir du classeur qui les contient, récupérer des données des autres classeurs, en fonction des critères utilisateurs entrés dans les formulaires.
J'utilise donc la formule suivante...
Sheets("DATA").Range("B10").FormulaR1C1 = "=VLOOKUP(RC[-1],[MONFICHIER.XLS]FEUIL1!C1:C3,3,FALSE)"
Ou DATA est une feuille du classeur des macros(ouvert) et MONFICHIER.XLS un des classeurs(fermé) ou je veux récupérer des données.
Hélas cela ne marche pas tout le temps, notamment par exemple lorsque je fais une sauvegarde de l'ensemble sur ma clef USB puis le récupère sur un autre PC, la fenêtre de l'explorateur de fichiers s'ouvre alors pour me demander le chemin du classeur appelé par vlookup..
Je prends pourtant la précaution de changer le chemin par défaut ainsi
1 2
| CHEMIN_UTILISATEUR = Application.DefaultFilePath
Application.DefaultFilePath = ThisWorkbook.Path |
puis le restaure par
Application.DefaultFilePath = CHEMIN_UTILISATEUR
mais cette fonction n'en tient pas compte, par contre si j'ouvre le classeur manuellement puis le ferme, cette fonction le retrouve ensuite à chaque fois..
L'éciture en place de [MONFICHIER.XLS]d'un chemin complet ou d'une chaine genre [ThisWoorbok.PAth & " \" nom du fichier ] ne ramène rien.
J'ai constaté que l'import des données par cette fonction dans le classeur des macros dans une autre feuille créait une liaison, est-ce la raison?
J'ai cherché en vain sur le Web la réponse à cette question.
Merci d'avance à celui qui pourra m'apporter la solution.
Pense à mettre le tag [VBA-E] comme tes petits camarades de jeu
Ajouté par ouskel'n'or
Partager