Macro : récuperer valeurs actualisées d'un autre classeur

RF3347 -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je dispose d'un classeur qui récupère toutes les nuits des données provenant d'un logiciel tiers qui efface les valeurs du classeur et le rempli de nouveau avec les données actualisées. Ceci fonctionne très bien.

Je souhaiterais créer un autre classeur qui irait chercher dans ce classeur "source" des données comme suit :
- si [en tête de colonne] = "Nom du contact" alors récupérer toutes les lignes dont les lignes dont les [valeurs de cette colonne] = "Dupont"

Je précise que la colonne en question peut avoir un emplacement différent : A, B, C ... selon que les utilisateurs du logiciel dont proviennent les données ont ajouté ou non des champs additionnels. Mais le champs "Nom du contact" sera toujours présent dans le tableau. C'est donc le Nom de la colonne, ou En-tête, qui fait foi et non sa position dans le tableau.

Quelqu'un aurait il une macro permettant de faire ceci svp ? Le fichier excel source ayant plusieurs onglet j'imagine que le code VBA devra préciser l'onglet sur lequel pointer.

Vraiment merci d'avance. Si pas clair j'essaie de vous joindre 2 fichiers exemples dans le week end.

bonne soirée

RF3347

Configuration: Android / Chrome 99.0.4844.73
A voir également:

10 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
0
RF3347
 
Bonjour f894009

merci pour ton aide.
voici les 2 fichiers ainsi qu'à l'intérieur de chacun quelques instructions sur les attentes de la macro.
encore merci pour le coup de main
https://www.cjoint.com/c/LCzqUFwH1KC
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

J'ai recupere vos fichiers et il y incohérence entre votre demande de depart:
- si [en tête de colonne] = "Nom du contact" alors récupérer toutes les lignes dont les lignes dont les [valeurs de cette colonne] = "Dupont"
et ce que vous avez ecrit dans le classeur travail:
Si des ID sont manquants dans le Classeur Travail, la macro doit permettre de les identifier dans le Classeur Source et les copier dans le Classeur Travail
0
RF3347
 
Bonjour.
C'est exact, en créant les 2 fichiers exemple j'ai pris conscience que raisonner sur les ID pour récupérer les données dans le classeur Travail était plus pertinent puisque les id seront uniques. Ainsi chaque jour de nouvelles lignes avec un id unique seront créées dans le classeur Source. Si je peux actualiser mon classeur Travail dès nouvelles données du classeur Source, je pourrais ensuite les exploiter dans un onglet avec un tableau croisé.
Merci !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Tout a fait Thierry, mais est-ce possible d'avoir plusieurs ID pour un meme nom car d'apres ceci:
toutes les lignes dont les lignes dont les [valeurs de cette colonne] = "Dupont"
c'est vrai ou meme ID pour plusieurs lignes, pouvez detailler et etoffer vos fichiers avec des exemples concrets
0
RF3347
 
Re ,

ID est une valeur unique. Donc oublions désormais la demande initiale.
Après reflexion si je résume le besoin ça donnerait ça :
Une macro se lance à l'ouverture (ou sur demande, peu importe) du fichier Classeur Travail.
Rechercher dans Classeur Source les ID non présents dans Classeur Travail.
Pour chaque ID trouvé, copier les valeurs de la ligne concernée et et les coller dans Classeur Travail à la suite des lignes déjà présentes.

Ainsi dans les fichiers transmis il y a quelques lignes non présentes dans Classeur Travail et qui figurent dans Classeur Source. La macro devrait pouvoir compléter Classeur Travail avec ces lignes manquantes.

Merci ! Et bon dimanche ????
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Ok, ca roule
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Le champ ID est au moins toujours a la meme place?
0
RF3347
 
Bonjour !
Oui, ce champ est impossible à déplacer par les utilisateurs.
Il figurera toujours en colonne A lors de l'export automatique des données vers le classeur Source.
Merci
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Ok
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Suite:

Fichier xlsm et votre fichier source: https://www.cjoint.com/c/LCCpIeSgqwf
La procedure de traitement se lance a l'ouverture du classeur xlsm.
Classeur ouvert, click droit sur cellule entete ID (A1) pour lancer la procedure de traitement
1
RF3347
 
Bon ben...c'est parfait !
Un petit coup de debogueur pour indiquer le bon chemin en local et ça fonctionne.
Ca n'aime pas trop en revanche le mélange des colonnes dans le Fichier Source, mais je vais figer cet aspect en amont pour verrouiller ce point. Pour être précis les données du fichier Source proviennent d'un formulaire dont les champs peuvent être déplacés par les utilisateurs, d'où le risque de mélange des colonnes. Je vais empêcher cette fonctionnalité.
Merci beaucoup.
bonne soirée.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

ca n'aime pas trop en revanche le mélange des colonnes
Avec le fichier source mis a dispo, y a pas de soucis, donc quelle difference avec le fichier source que vous utilisez ?
0