Feuille variable dans un recherchev(vlookup)
guiM
-
guiM -
guiM -
Bonjour tout le monde,
J'ai un problème de syntaxe dans du code vba et je m'en remets à l'aide du forum.
Je travaille sur un classeur (classeur_de_synthése) qui synthétise plusieurs infos d'un autre classeur ayant plusieurs page (classeur_source).
J'ai une boucle qui tourne donc sur toutes les pages du classeur_source, car la procédure de prélevement d'information est la meme pour toutes les pages.
Je souhaiterai mettre dans ma boucle un recherchev (vlookup) qui fait référence à la page sur laquelle tourne la boucle. En gros je souhaiterai mettre un variable "feuille" dans mon vlookup
concrétement :
sub()
dim feuille as worksheet
Workbooks("classeur_source.xls").Activate
for each feuille in Workbook
...
Workbooks("classeur_de_synthése.xls").Activate
Range("C4").Select
'ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-2],""[classeur_source.xls]"" & feuille.name &""!R9C2:R1000C13"",11,FALSE)"
...
End
En fait c'est la syntaxe avec les " / ' / & qui me pose problème et que je n'arrive pas à rédiger.
Merci d'avance
J'ai un problème de syntaxe dans du code vba et je m'en remets à l'aide du forum.
Je travaille sur un classeur (classeur_de_synthése) qui synthétise plusieurs infos d'un autre classeur ayant plusieurs page (classeur_source).
J'ai une boucle qui tourne donc sur toutes les pages du classeur_source, car la procédure de prélevement d'information est la meme pour toutes les pages.
Je souhaiterai mettre dans ma boucle un recherchev (vlookup) qui fait référence à la page sur laquelle tourne la boucle. En gros je souhaiterai mettre un variable "feuille" dans mon vlookup
concrétement :
sub()
dim feuille as worksheet
Workbooks("classeur_source.xls").Activate
for each feuille in Workbook
...
Workbooks("classeur_de_synthése.xls").Activate
Range("C4").Select
'ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-2],""[classeur_source.xls]"" & feuille.name &""!R9C2:R1000C13"",11,FALSE)"
...
End
En fait c'est la syntaxe avec les " / ' / & qui me pose problème et que je n'arrive pas à rédiger.
Merci d'avance
A voir également:
- Feuille variable dans un recherchev(vlookup)
- Comment faire un livret avec des feuilles a4 - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Bruler feuille de laurier - Guide
- Feuille de score belote excel - Forum Graphisme
- Dans la présentation à télécharger, sans modifier leur position dans la feuille : - Forum LibreOffice / OpenOffice
11 réponses
Je viens de tester chez moi, effectivement.
Par contre
eric
Par contre
feuille = "[Classeur2]Feuil 1"
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],'" & feuille & "'!R10C2:R18C3,2,FALSE)"passe bien lui...
eric
Bonjour,
Pourquoi écrire une formule ? tu cherches bien à écrire une valeur dans ta synthèse ?
et tu écris cette formule dans la m^me cellule (C4") autant de fois qu'il y a de feuille ?
je t'avoue que... précise clairement ce que tu veux
Pourquoi écrire une formule ? tu cherches bien à écrire une valeur dans ta synthèse ?
et tu écris cette formule dans la m^me cellule (C4") autant de fois qu'il y a de feuille ?
je t'avoue que... précise clairement ce que tu veux
Oui , je me suis mal exprimé.
d'une part la formule que j'écris en C4 est retraitée sur plusieurs pages de mon classeur_de_synthése (une fois qu'elles est importée) et ensuite supprimée avant de passer à une autre feuille , donc en fait ; de trouver cette valeur me permets de centraliser son importation.
d'autre part , je ne peux pas me permettre de l'importer manuellement pcq aprés j'ai un autofill sur 150 lignes. et cette manip' se retraite sur 40 pages.
donc j'utilise une formule (un vlookup) pour rechercher automatiquement ma valeur .
tu vois à peu prés ce que je veux dire ?
d'une part la formule que j'écris en C4 est retraitée sur plusieurs pages de mon classeur_de_synthése (une fois qu'elles est importée) et ensuite supprimée avant de passer à une autre feuille , donc en fait ; de trouver cette valeur me permets de centraliser son importation.
d'autre part , je ne peux pas me permettre de l'importer manuellement pcq aprés j'ai un autofill sur 150 lignes. et cette manip' se retraite sur 40 pages.
donc j'utilise une formule (un vlookup) pour rechercher automatiquement ma valeur .
tu vois à peu prés ce que je veux dire ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour michel,
désolé pour ce petit we de silence,
En ce qui concerne le cadre de la macro, à la limite c'est peu important .
L'idée c'est que j'ai une boucle qui passe sur plusieurs feuille du classeur de base, et que je veux importer plusieurs infos de toutes ces feuilles via un vlookup sur mon classeur de synthese
Workbooks("classeur_de_base.xls").Activate
for each feuille in Workbook
Workbooks("classeur_de_synthése.xls").Activate
Range("C4").Select
'ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-2],""[classeur_source.xls]"" & feuille.name &""!R9C2:R1000C13"",11,FALSE)"
Next
en fait c'est que je n'arrive pas à faire , c'est écrire un la syntaxe d'un feuille variable dans mon vlookup.
Je suis plus clair ?
Merci d'avance
désolé pour ce petit we de silence,
En ce qui concerne le cadre de la macro, à la limite c'est peu important .
L'idée c'est que j'ai une boucle qui passe sur plusieurs feuille du classeur de base, et que je veux importer plusieurs infos de toutes ces feuilles via un vlookup sur mon classeur de synthese
Workbooks("classeur_de_base.xls").Activate
for each feuille in Workbook
Workbooks("classeur_de_synthése.xls").Activate
Range("C4").Select
'ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-2],""[classeur_source.xls]"" & feuille.name &""!R9C2:R1000C13"",11,FALSE)"
Next
en fait c'est que je n'arrive pas à faire , c'est écrire un la syntaxe d'un feuille variable dans mon vlookup.
Je suis plus clair ?
Merci d'avance
Bonsoir tout le monde,
essaie avec ça :
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],'" & feuille.name & "'!R9C2:R39C13,11,FALSE)"
lire :
eric
essaie avec ça :
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],'" & feuille.name & "'!R9C2:R39C13,11,FALSE)"
lire :
' " & feuille.name & " '(avec les espaces en moins...)
eric
bonjour Eric,
Merci pour ta solution,
je pense qu'il faut que je préçise aussi le classeur ou chercher, car la cellule contenant cette formule, est dans le classeur qui synthétise les données (classeur_de_synthèse) et pas dans celui ou les feuilles doivent défiler (classeur_source.xls).
Le chemin vers ce classeur n'est pas nécessaire car il est ouvert plus haut dans la procédure, mais le nom me semble indispensable et c'est là ma difficulté de syntaxe en fait : cumuler un nom en dur et une variable page.
Une idée ?
Merci d'avance.
Merci pour ta solution,
je pense qu'il faut que je préçise aussi le classeur ou chercher, car la cellule contenant cette formule, est dans le classeur qui synthétise les données (classeur_de_synthèse) et pas dans celui ou les feuilles doivent défiler (classeur_source.xls).
Le chemin vers ce classeur n'est pas nécessaire car il est ouvert plus haut dans la procédure, mais le nom me semble indispensable et c'est là ma difficulté de syntaxe en fait : cumuler un nom en dur et une variable page.
Une idée ?
Merci d'avance.
Bonjour,
Je n'avais pas fait attention au nom du classeur...
Comme ça ?
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],'[classeur_source.xls]" & feuille.name & "'!R9C2:R39C13,11,FALSE)"
lire " ' !
eric
Je n'avais pas fait attention au nom du classeur...
Comme ça ?
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],'[classeur_source.xls]" & feuille.name & "'!R9C2:R39C13,11,FALSE)"
lire " ' !
eric
Re,
Non ça ne marche pas
Avant meme de tester la macro, quand je tape le code, j'ai un message "Errreur de compilation . Attendu :fin d'instruction".
Je bloque , je pense que je vais passer par un select case, ac toute les pages (une trentaine quand même), c'est plus lourd mais ça fonctionne.
Merci pour ton aide en tt cas
Si tu as une autre idée je suis quand même preneur.
Non ça ne marche pas
Avant meme de tester la macro, quand je tape le code, j'ai un message "Errreur de compilation . Attendu :fin d'instruction".
Je bloque , je pense que je vais passer par un select case, ac toute les pages (une trentaine quand même), c'est plus lourd mais ça fonctionne.
Merci pour ton aide en tt cas
Si tu as une autre idée je suis quand même preneur.
Merci beaucoup,
Je vais essayer d'utiliser ce système mais un peu différement pcq mon but est d'éviter d'écrire le nom de la feuille. Je ne veux travailler qu'avec la variable "feuille", sinon tôt ou tard je vais devoir écrire le nom des 35 feuilles...
Du coup je vais tenter un truc du style :
for each feuille in worksheets
...
CLfeuille="[classeur_source.xls]feuille"
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],'" & CLfeuille & "'!R10C2:R18C3,2,FALSE)"
Next
Je teste dés ce soir et je t'en donne des nouvelles.
Merci encore
Je vais essayer d'utiliser ce système mais un peu différement pcq mon but est d'éviter d'écrire le nom de la feuille. Je ne veux travailler qu'avec la variable "feuille", sinon tôt ou tard je vais devoir écrire le nom des 35 feuilles...
Du coup je vais tenter un truc du style :
for each feuille in worksheets
...
CLfeuille="[classeur_source.xls]feuille"
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],'" & CLfeuille & "'!R10C2:R18C3,2,FALSE)"
Next
Je teste dés ce soir et je t'en donne des nouvelles.
Merci encore