Bonjour à tous,
Je travaille actuellement sur une macro me permettant de mapper un fichier d'export des ventes (donc avec nb de lignes variables) avec un fichier de mapping (lui aussi avec le nb de lignes variables).
Mon problème :
#1) j'analyse mon fichier de base pour déterminer le nb de lignes sur lesquel portera le calcul Vlookup : pour cela pas de souci
- Création d'une variable NB_Lignes en via Dim as Long
- NB_Lignes = ActiveSheet.UsedRange.Rows.Count
#2) le problème se pose pour coller la formule
je n'arrive pas à nommer une variable range qui correpondrait sur le fichier de mapping à la zone utile (cad : uniquement le nb de lignes contenu dans ce fichier).
- pour déterminer la zone du fichier mapping (dont le nb de colonnes est fixe) : idem que #1 : ActiveSheet.UsedRange.Rows.Count
- j'arrive à afficher le range souhaité via : Range(Cells(1, 1), Cells(Clients_NB_Lignes, 11)).Address dans un MsgBox (et la zone est parfaitemement ce que je souhaite.. genre $a$1:$K$2500)
j'arrive à ça :
ActiveCell.FormulaR1C1 ="=VLOOKUP(RC1,'[Fichier mapping.xls]Feuille1'.Range(Cells(1, 1), Cells(Clients_NB_Lignes, 11)).Address,3,0)" qui ne fonctionne pas.
L'idéal serait de nommer ma zone ... Range(Cells(1, 1), Cells(Clients_NB_Lignes, 11)).Address via add. names, set,... dans une variable que j'appelerai sur mon fichier à mapper avec une formule du genre : =vlookup("A1";Maplage;2;0)
C'est frustrant car c'est évident que c'est possible puisque j'arrive à afficher la zone que je veux dans le ficher de mapping, mais je n'arrive pas à l'utiliser (en l'état ou via variable) comme base de référence dans le vlookup du fichier à mapper!
(j'suis clair là! )
#3) Après pour coller la formule sur uniquement le nb de lignes du fichier à mapper : pas de souci également
Selection.AutoFill Destination:=Range("l2:l" & NB_Lignes)
D'avance merci pour votre aide sur cette question qui doit vous paraitre anodine mais qui me tracasse sérieusement...
Je reste à votre dispo pour tout complément d'info!
La braise
Je travaille actuellement sur une macro me permettant de mapper un fichier d'export des ventes (donc avec nb de lignes variables) avec un fichier de mapping (lui aussi avec le nb de lignes variables).
Mon problème :
#1) j'analyse mon fichier de base pour déterminer le nb de lignes sur lesquel portera le calcul Vlookup : pour cela pas de souci
- Création d'une variable NB_Lignes en via Dim as Long
- NB_Lignes = ActiveSheet.UsedRange.Rows.Count
#2) le problème se pose pour coller la formule
je n'arrive pas à nommer une variable range qui correpondrait sur le fichier de mapping à la zone utile (cad : uniquement le nb de lignes contenu dans ce fichier).
- pour déterminer la zone du fichier mapping (dont le nb de colonnes est fixe) : idem que #1 : ActiveSheet.UsedRange.Rows.Count
- j'arrive à afficher le range souhaité via : Range(Cells(1, 1), Cells(Clients_NB_Lignes, 11)).Address dans un MsgBox (et la zone est parfaitemement ce que je souhaite.. genre $a$1:$K$2500)
j'arrive à ça :
ActiveCell.FormulaR1C1 ="=VLOOKUP(RC1,'[Fichier mapping.xls]Feuille1'.Range(Cells(1, 1), Cells(Clients_NB_Lignes, 11)).Address,3,0)" qui ne fonctionne pas.
L'idéal serait de nommer ma zone ... Range(Cells(1, 1), Cells(Clients_NB_Lignes, 11)).Address via add. names, set,... dans une variable que j'appelerai sur mon fichier à mapper avec une formule du genre : =vlookup("A1";Maplage;2;0)
C'est frustrant car c'est évident que c'est possible puisque j'arrive à afficher la zone que je veux dans le ficher de mapping, mais je n'arrive pas à l'utiliser (en l'état ou via variable) comme base de référence dans le vlookup du fichier à mapper!
(j'suis clair là! )
#3) Après pour coller la formule sur uniquement le nb de lignes du fichier à mapper : pas de souci également
Selection.AutoFill Destination:=Range("l2:l" & NB_Lignes)
D'avance merci pour votre aide sur cette question qui doit vous paraitre anodine mais qui me tracasse sérieusement...
Je reste à votre dispo pour tout complément d'info!
La braise
Dernière édition: