Je suis en stage et je débute en VBA
Je dois mettre à jour un fichier en rajoutant dans un nouvel export certaines données de l'ancien export automatiquement car le fichier est mise à jour toute les semaines.
Voici à quoi ressemble les exports (c'est juste un exemple le document comporte plus de 30 colonnes)
Ancien
Référence......Nom............Prénom.............Email......... Poste...........Sexe.........Age
..........0.............Dupond...........Jacques.......dj@mail.com.....apprenti...........M..........22
..........1.............Dubois.............Pierre.........dp@mail.com.......salarié...........M..........40
..........2.............DuMoulin........Charles........dc@mail.com.......stagiaire........M..........20
Nouveau
Référence......Nom.......Sexe........Prénom..........Email.............Age
.......0..............Dupond........M.........Jacques.......dj@mail.com.........22
.......1..............Dubois........ M.........Pierre..........dp@mail.com.........40
.......2..............DuMoulin......M........Charles........dc@mail.com.........20
Le problème que je rencontre est que les colonnes des fichiers ne sont pas forcement au même endroit du coup pour ma RECHERCHEV je n'ai pas de numéro de colonne fixe.
Par exemple si j'effectue ma rechercheV dans l'ancien fichier l'âge se situe à la colonne 7 alors que le nouveau à la colonne 6 donc à la prochaine mise à jour la macro ne marche plus.
J'ai réussi à récupérer le numéro de la colonne mais je n'arrive pas à l'utiliser dans la RECHERCHEV à la place de no_index_col
Voici mon code
Code:
Dim Col As Integer
Windows("ancien_export").Activate
Col = Sheets("ancien_export").Rows(1).Find("Age", , , , xlByColumns, xlPrevious).Column 'récupérer le numéro de la colonne
Windows("nouveau_export").Activate
Range("TableauBMIR[Age]").Select
ActiveCell.FormulaR1C1 =VLOOKUP([Référence],ancien_export.xlsx!Tableau,Col,FALSE)"
Utiliser "Col" à la place du numéro de colonne ne marche pas je ne vois pas trop comme faire
Re : [Résolu ] recherchev avec no_index_col variable
Bonsoir learning code,
Si tu repasses par ici, pourquoi la discussion a-t-elle comme préfixe [Résolu]? Tu as trouvé une solution? Si oui, indique-le ici (pour que d'autres ne se posent pas la même question que moi et parce que la solution pourrait en intéresser d'autres!?)
Si tu es toujours en recherche de solution, rien n'empêche -théoriquement- d'utiliser le n° de colonne dans une RECHERCHEV ... si ça ne fonctionne pas, il y a plein de raisons envisageables. Rien de tel qu'un petit bout de fichier représentant la structure de ton vrai fichier de travail (mais sans données confidentielles!), pour nous aider à comprendre d'où pourrait venir le souci!
La question subsidiaire étant: pourquoi une macro, si une formule donne le résultat!?
Re : [Résolu ] recherchev avec no_index_col variable
Bonjour,
oui j'ai trouvé une solution. Il suffit d'utiliser un equiV dans la rechercheV :
rechercheV([Reference];ancien_export.xlsx!Tableau;equiV("Age";ancien_export.xlsx!Tableau;0);faux)
mon "problème" était justement que je ne pouvais pas utiliser le numéro de la colonne car l'emplacement de cette colonne peut varier de ficher en fichier.
Une personne de l'équipe effectue un export d'un document qu'il met à jour toutes les semaines et est utilisé par plusieurs personnes.
Je travaille en parallèle sur le même fichier pour un autre projet. Je dois donc mettre en plus les données de mon projet sauf qu'il y en a pour environ 15 colonnes.
Donc ça serait plus simple de le faire via une macro au lieu de faire 15 rechercheV toutes les semaines
Re : [Résolu ] recherchev avec no_index_col variable
Salut Modeste,
(et le petit coin de Belgique ensoleillé aujourd'hui, c'est pas tous les jours)
La raison pour laquelle je place la colonne position est de réduire le nombre de recherches.
Si tu recherche 5 colonnes, et 1000 lignes, cela commence a compter comme temps de calcul.
Dans ce cas tu as 10.000 EQUIV... et moi 1.005
Si tu passe a 6 colonnes, tu a 12.000 EQUIV et moi 1.006...
Bref, comme je suis paresseux, de fais calculer excel, et comme je suis impatient, je cherche une solution la plus rapide possible.
c'est pas encore tout a ait au point: Ma macro dynarangev ne travaille encore qu'en vertical.
(elle crée un range à longueur variable dynamiquement. )
A noter mon système fonctionne même si à l'export suivant, les colonnes changent de position. (un peu marre des automaticiens qui changent les export sans avertir)