VBA pour récupérer données entre deux classeurs

Bonjour le Forum,

J'ai à nouveau besoin de votre aide ; je souhaiterais automatiser l’exécution d’une tâche par macro.

Mensuellement je reçois un fichier A que je dois retravailler pour renseigner des cellules dans un fichier B.

Depuis le fichier B, je souhaiterais lancer une macro pour :

1° - supprimer toutes les lignes dans le fichier A dont les valeurs de la colonne A (à partir de la ligne 2) sont différentes des valeurs de la colonne C (à partir de la ligne 6) du fichier B (onglet Janvier_N pour le fichier A nommé Janvier) ;

2° - supprimer les colonnes G et H du fichier A ;

3° - supprimer toutes les lignes du fichier A pour lesquelles les valeurs dans les cellules de la colonne D sont différentes des valeurs « D » ou de « I » ou de « H » ;

4° - inscrire dans les cellules de la colonne G du fichier A si Ei = 0 alors écrire en Gi la valeur 1 sinon écrire 0.5 ;

5° - inscrire dans les cellules de la colonne H du fichier A le résultat de la formule =SOMMEPROD(($A$2:$A$44>=$A2)*($A$2:$A$44<=$A2)*($G$2:$G$44))

Il faudrait ensuite pouvoir obtenir une seule valeur en H pour une même personne repérée par son numéro d’identification en colonne A du fichier A de manière à passer à la dernière étape...

6° - rapatrier les valeurs des cellules Hi du fichier A dans la colonne D du fichier B en l’ayant au préalable multipliée par 2 et retranchée à la valeur des cellules de la colonne E du fichier B ;

Par avance, je vous remercie de vos contributions qui me seront d’une grande aide.

Ci-joint le fichier A nommé « Janvier 2019 » et le fichier B.

17janvier-2019.xls (18.00 Ko)
14fichier-b.zip (27.93 Ko)

Bonne journée.

bonjour

ta version 2003 d'Excel ne permet pas d'utiliser Power Query

1- si tu peux passer à 2010 ou plus, PQuery te fera tout ça facilement

2- sinon, Power BI Desktop gratuit fera le job.

il est facile de lire des fichiers Excel (et bien d'autres) et de les traiter comme tu en as besoin

tu préfères 1 ou 2 ?

(je te conseille 2)

dans tous les cas, je déconseille VBA.

à te relire, amitiés

Bonjour le Forum, bonjour Jmd,

Merci de ta réponse.

Le souci est que je dois exécuter ce fichier partagé depuis mon poste de travail et il n'est pas prévu de changer de version excel. Autre souci est que je ne suis pas administrateur de mon PC et qu'il ne m'est pas possible d'installer de modules complémentaires et c'est pour cela que la solution VBA semble la solution la plus simple pour pallier ces problématiques et automatiser ces extractions qui dans l'exemple ne concernent que quelques lignes mais dans le fichier à traiter cela concerne beaucoup plus de ligne (et c'est chronophage de faire les extractions manuellement).

J'ai commencé à développer un code, pas à pas, mais mes notions en vba ne sont pas très solides. Je n'ai pas même terminé l'étape 1. Dans un premier temps j'essaie de colorer (en vert) les cellules dont la valeur est similaire aux cellules de l'autre fichier. Objectif ensuite les masquer, puis supprimer les lignes non masquées et ré-afficher les lignes précédemment colorées... Seul problème, je n'arrive pas à faire une boucle pour colorer les cellules dans le fichiers 2019_Janvier. En effet, une fois que la première valeur est trouvée, si la cellule en dessous de la première cellule porte la même valeur elle ne se colore pas puisque je passe directement à la recherche de la valeur suivante...

Voir P.J

10essai-v1.zip (31.07 Ko)

La macro s'exécute depuis le Fichier B

En espérant pouvoir de l'aide pour poursuivre ce code ou trouver une autre solution.

Bonne soirée et @ bientôt

Bonjour le forum,

Je suis toujours bloqué au même stade ce matin et je n'arrive pas à faire ce que je souhaite.

Pouvez-vous m'aiguiller ?

Bonne journée.

Bonjour le Forum,

J'ai réussi à me débrouiller pour arriver à faire ce que je souhaitais, le code peut très certainement être amélioré.

Aussi, j'aurai souhaité savoir s'il existait une méthode pour tester l'existence d'une feuille dans un classeur à l'ouverture de ce dernier ?

Par avance, merci de vos réponses.

18essai-v2.zip (42.03 Ko)
Rechercher des sujets similaires à "vba recuperer donnees entre deux classeurs"