Macro : récuperer valeurs actualisées d'un autre classeur
RF3347
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Macro : récuperer valeurs actualisées d'un autre classeur
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
10 réponses
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...
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...
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
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
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
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
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 !
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 !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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 ????
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 ????
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
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
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
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
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.
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.