Renseigner RECHERCHEV avec des variables

Résolu
jean-louis tecnad Messages postés 9 Date d'inscription lundi 30 décembre 2013 Statut Membre Dernière intervention 5 janvier 2014 - 4 janv. 2014 à 11:41
jean-louis tecnad Messages postés 9 Date d'inscription lundi 30 décembre 2013 Statut Membre Dernière intervention 5 janvier 2014 - 5 janv. 2014 à 22:10
Bonjour,

J'espère que les lendemains de réveillons ne sont pas trop pénibles pour toutes les têtes pensantes du forum !!!!

Voici mon problème :
une variable emPloyes qui va pêcher dans la feuille courante le chemin et le nom.xls. ok ça fonctionne jusque là.
dim emPloyes as string
emPloyes = [d99]

Je souhaite remplir cette commande qui me fait des misères depuis le ";" dans un module VBA
alors que lorsque je la remplis dans une simple cellule excel elle fonctionne mais
bien sûr sans la variable emPloyes.
RECHERCHEV(A1;[employes]!'Liste des employes'!$A$1:$E$335;5;FAUX)

Je vous remercie d'avance de vos éclaircissements.
Jean-Louis

13 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 4/01/2014 à 11:56
Bonjour,
la notation [employes] (entre crochets, donc) ne correspond pas à une chaîne de caractères et tendrait à se référer à une adresse nommée.
Ne nous montre pas la formule, mais ce que tu as écrit en VBA pour spécifier cette formule

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
jean-louis tecnad Messages postés 9 Date d'inscription lundi 30 décembre 2013 Statut Membre Dernière intervention 5 janvier 2014
4 janv. 2014 à 12:04
Merci Ucfoutu pour cette réponse hyper-rapide, serait-il possible d'obtenir en complément la ligne comme elle devrait se présenter. J'ai bien compris que le mode
[] était pas juste, la preuve c'est que la variable "employes" n'y est pas reconnue (P majuscule)
Encore merci d'avance.
JL
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 4/01/2014 à 12:34
J'avais pourtant été clair :
"Ne nous montre pas la formule, mais ce que tu as écrit en VBA pour spécifier cette formule"


Puisque tu as dit dans ton premier message :
"Je souhaite remplir cette commande qui me fait des misères depuis le ";" dans un module VBA"
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 janv. 2014 à 18:34
Et maintenant voilà (donc forcément plus haut et rendant le suivi compliqué) DEUX commentaires ! Le bouton "répondre au sujet" serait-il invisible ?
Je ne poursuivrai que lorsque tu auras au moins fait ce geste simple (et ferai ensuite le "ménage" dans tout ce mic-mac)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jean-louis tecnad Messages postés 9 Date d'inscription lundi 30 décembre 2013 Statut Membre Dernière intervention 5 janvier 2014
4 janv. 2014 à 18:41
Bonsoir Ucfoutu,

Tout arrive, je pensais que le bouton réponse était destiné lorsque une solution était proposée, alors que pour l'instant j'ai plutôt des questions. Je saurai pour la prochaine fois.

Encore merci, mais toujours pas bon pour ma petite tête.

Pour m'aider, j'ai tapé un recherchev dans une feuille avec enregistrement de macro.

Voila ce que je trouve dans le module :


ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-11],'[Liste des employes (1).xls]Liste des
employes'!R1C1:R335C5,5,FALSE)"


je désirerais remplacer : [Liste des employes (1).xls]
par la variable "emPloyes" qui contient le chemin + le nom du classeur.

S'il te plait peux-tu me dire comment l'exprimer.

J'espere que je me suis mieux exprimé cette fois-ci

merci pour ta patience

Jean-Louis
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 4/01/2014 à 19:44
Ménage fait ...
Tu "penses" mal ! Une réponse est une réponse. Un commentaire n'a pas la vocation d'une réponse ! Il a celle de "commenter" une réponse (ici, comme partout ailleurs). Si, en plus, il vient "commenter" son propre message, on s'interroge forcément ...
Revenons à nos moutons :
Une formule n'est rien d'autre qu'une chaîne de caractères.
Et donc : comme pour toute chaîne de caractères devant inclure la valeur d'une variable, elle se construit par concaténation.
Exemple :
toto = "blabla " & titi & " blibli"
ne sera rien d'autre que
toto = "blabla alons bon blibli"
si titi = "allons bon"
Et cette réponse : sans préjufice de la justesse de ta formule (c'est là un autre aspect).

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
jean-louis tecnad Messages postés 9 Date d'inscription lundi 30 décembre 2013 Statut Membre Dernière intervention 5 janvier 2014
4 janv. 2014 à 20:04
Bonsoir Ucfoutu,

Je ne t'embête plus avec mes soucis, apparement je m'exprime mal,
ce que tu m'as dit dans ton dernier message ne répond pas au sujet.

Laisse "beton" je vais chercher dans d'autres sources.

Merci quand même

Jean-Louis
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 janv. 2014 à 20:09
"ce que tu m'as dit dans ton dernier message ne répond pas au sujet."
Désolé, mais y répond parfaitement !
Sauf, bien sûr, si tu ne sais pas faire cette concaténation adaptée à cette chaîne de caractères ou que, finalement, ta question n'était pas celle posée (utilisation d'une variable dans une formule écrite depuis VBA).

0
jean-louis tecnad Messages postés 9 Date d'inscription lundi 30 décembre 2013 Statut Membre Dernière intervention 5 janvier 2014
4 janv. 2014 à 20:33
re bonsoir

Voici :
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-11],employes&'Liste des employes'!R1C1:R335C5,5,FALSE)"

Je demandais juste comment exprimer cette ligne sachant qu'employes est une variable qui contient le chemin et le nom du fichier XLS a consulter. (ça je sais faire), le problème est dans la ligne de code VLOOKUP.

[employes] ou [(employes)] ou [("employes")] ou employes
ne fonctionnent pas.
peut-être c'est "employe.un parametre" ?

Merci.

Jean-Louis
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 janv. 2014 à 21:02
Et je t'ai répondu : ce n'est qu'une concaténation ...
0
jean-louis tecnad Messages postés 9 Date d'inscription lundi 30 décembre 2013 Statut Membre Dernière intervention 5 janvier 2014
Modifié par jean-louis tecnad le 5/01/2014 à 21:39
Voila j'ai trouvé une réponse, je la poste pour l'intêret de personnes qui comme moi se heurtent à des murs.

Nico4664
Posté le 07-11-2007 à 09:33:44 profilanswer

Ouais, tegu a raison çà fonctionne en utilisant INDIRECT(), je viens de tester.

Tu indiques le chemin de ta plage de donnée dans une cellule :[fichier_du_01112007.xls]Feuil1!$C$1:$L$84
et ta formule devient : RECHERCHEV(A2;INDIRECT(cellule_qui_contient_le_nom_du_fichier);4;FAUX)

Par contre il va te falloir créer une cellule pour chaque nom de fichier.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 janv. 2014 à 22:07
Oui, bien sûr, mais là, c'est une formule et ce n'est plus :
"Je souhaite remplir cette commande qui me fait des misères depuis le ";" dans un module VBA "
0
jean-louis tecnad Messages postés 9 Date d'inscription lundi 30 décembre 2013 Statut Membre Dernière intervention 5 janvier 2014
5 janv. 2014 à 22:10
Vouiii c'est ça

sauf que le type qui a posé la question s'est exprimé un peu comme moi .....

merci quand même
Jean-Louis
0
Rejoignez-nous