Renseigner RECHERCHEV avec des variables [Résolu]

Signaler
Messages postés
9
Date d'inscription
lundi 30 décembre 2013
Statut
Membre
Dernière intervention
5 janvier 2014
-
jean-louis tecnad
Messages postés
9
Date d'inscription
lundi 30 décembre 2013
Statut
Membre
Dernière intervention
5 janvier 2014
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
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
Messages postés
9
Date d'inscription
lundi 30 décembre 2013
Statut
Membre
Dernière intervention
5 janvier 2014

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
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)
Messages postés
9
Date d'inscription
lundi 30 décembre 2013
Statut
Membre
Dernière intervention
5 janvier 2014

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
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
Messages postés
9
Date d'inscription
lundi 30 décembre 2013
Statut
Membre
Dernière intervention
5 janvier 2014

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
"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).

Messages postés
9
Date d'inscription
lundi 30 décembre 2013
Statut
Membre
Dernière intervention
5 janvier 2014

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Et je t'ai répondu : ce n'est qu'une concaténation ...
Messages postés
9
Date d'inscription
lundi 30 décembre 2013
Statut
Membre
Dernière intervention
5 janvier 2014

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.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
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 "
Messages postés
9
Date d'inscription
lundi 30 décembre 2013
Statut
Membre
Dernière intervention
5 janvier 2014

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