Importer donnée sur un autre fichier en fonction d'une date

Bonjour A vous,

J'ai une macro qui me sert à importer des données d'un autre fichier excel :

Dossier principal :

Dossier ou son les données :

Attention : pour que la macro fonctionne , il faut que le fichier Production controler soit dans un dossier et il faut modifier le chemin d'accés sur le fichier Concolidation production onglet manage.

Je voudrais pouvoir seulement importer mes données du fichier Production controler en fonction de la date en colonne H par rapport à la date écrite dans l'onglet manage du fichier concolidation en C8 => (importer TOUTES les données avec une date supérieure à C8)

Exemple

Si date de la colonne H (fichier production controler) > date en C8 dans le fichier Concolidation alors,

je copie colle sinon,

je ne copie pas et je passe à la suivante.

Avez vous une idée ?

Vince

Salut,

Tu nous as fourni deux fois le même fichier

Cordialement.

Effectivement ... :

Dossier principal :

Dossier ou son les données :

Bonjour,

Le plus simple me semble être un traitement des lignes tout à la fin des exportations afin de supprimer les lignes qui n'auraient pas dû être importées.

Si tu modifies les deux lignes ci-dessous de la macro Sub destruction(), ça devrait jouer.

For r = derniereLigne To 2 Step -1
If Application.CountA(Cells(r, 9)) = 0 Or Range("H" & r) < Sheets("manage").Range("C8") Then Rows(r).Delete

A noter que dans la première ligne, j'ai remplacé le To 1 par To 2.

Je n'ai pas très bien compris non plus ce que tu entendais par ''importer TOUTES les données avec une date supérieure à C8''. Mais la condition de la partie Or Range("H" & r) < Sheets("manage").Range("C8") ajoutée à ta ligne d'origine peut-être modifiée en fonction de tes besoins (par exemple > ou >= ou <= à la place de < ).

Mon fichier de travail en annexe.

Cordialement.

Merci , au top pour l'idée

Yvouille,

Pourrais tu m'éclaircir sur la suite de ma macro ?

Mon objectif est de rapatrier les données de l'onglet debatcher sur mon onglet production avec VLOOKUP en fonction du numéro WAVE que j'ai en début de fichier.

2 solutions :

Faire une recherche V colonne par colonne et en utilisant la fonction tableau pour descendre la formule automatiquement.

ou

faire une recherche V et importer la ligne entière même si ça serait plus rapide (mais cela me parait beaucoup plus compliqué)

Dans tout les cas, je bloque déjà sur la fonction VLOOKUP

Range("J2") = Application.WorksheetFunction.VLookup(Range("A2"), Sheets("debatcher").Range("A:V"), 2, False)

Je mets le fichier principal sans les fichiers secondaire, par conséquent la macro globale ne fonctionnera pas mais la formule peut fonctionner avec les datas du fichier principal

Salut,

A nouveau, je pense que la solution serait plutôt de modifier les macros Sub destruction_production() et/ou Sub destruction_debatcher() afin de réaliser ce que tu souhaites afin de profiter des boucles For/Next qu'elles contiennent déjà et qui passent en revue toutes les lignes à traiter.

Mon premier problème est que je n'ai pas compris quelles données doivent être transférées exactement. Explique cela clairement en indiquant – si seules certaines données doivent être reprises – les données de quelles colonnes de la feuille ''debatcher'' doivent être placées dans quelles colonnes de la feuille ''pro duction'' (par exemple : les données de la colonne B dans la colonne U et les données des colonnes D à F dans les colonnes V à X).

Ou alors indique-moi si toute la ligne de la feuille ''debatcher'' doit remplacer la ligne de la feuille ''production''.

J'aimerais aussi comprendre pourquoi tu fais ce travail entre tes deux importations (''IMPORTATION Production contrôler preparation'' et ''IMPORTATION Debtacher'') ?

Une fois ces deux choses précisées, je pense pouvoir te proposer un code réalisant tes souhaits.

Chaleureusement.

Bonjour,

Je vais essayer d'être factuel et précis dans mon explication.

Contexte:

Imaginons des étapes d'une ligne de fabrication dans une Usine :

Poste 1 : production => 1 personne travail sur ce poste => donc un seul fichier

Poste 2 : debatcher => x personnes travail sur ce poste => donc plusieur fichier (1 par personne)

Poste 3 : .......=> x personnes travail sur ce poste => donc plusieur fichier (1 par personne)

Poste 4: ....... (on va dire que c'est le poste de travail final)=> x personnes travail sur ce poste => donc plusieur fichier (1 par personne)

Je n'ai pas encore c'est fichier mais je l'ai rajouterai plus tard.

Chaque personne enregistre un certain nombre de donnée (Date de début de travail, Date de fin de travail, quantité production, ...) et surtout un numéro unique qui est le numéro de WAVE.(première colonne sur chaque fichier).

Objectif :

Imaginons que l'on veille calculer le takt time de la ligne de fabrication (combien de temps mets un produit pour traverser toutes les étapes), il me faut l'ensemble des temps de passage sur un seul tableau pour après analyser les données avec du dynamique.

Au passage, sachant que l'on collecte des données, je veux m'en servir pour calculer d'autre d'indicateur => cela implique de regrouper plus que des dates sous le même fichier (nom, quantité, ....) => importer l'ensemble de chaque fichier

Ma vision :

Pour arriver à ce que je veux avec mes connaissances, je veux me servir du numéro unique que je retrouve sur chaque fichier (Wave) en première colonne comme lien entre tout les postes.

Donc par étape , cela donne :

J'importe le fichier "production"

J'importe le fichier "debatcher"

J'importerai les autres fichier plus tard. L'objectif est de comprendre le fonctionnement

Après" c'est simple " : (je cherche à faire cette étape)

Lettres représentes des colonnes A,B,C et les chiffres représentes des postes de travail 1 production 2 debatcher 3 toto

Sous le même onglet (c'est à dire production)

A1 B1 C1 D1 E1 ... => à la suite A2 B2 C2 D2 E2 ... => à la suite A3 B3 C3 D3 E3 ....

Faire cette opération sur chaque ligne en comparant A1 avec A2 avec A3

Je viens mettre l'ensemble des données les unes à la suite des autres toujours par rapport au numéro de WAVE

Si mon Wave production = Wave debatcher alors je copie la ligne à la suite de la derniere colonne sur mon tableau production

Si mon Wave production = Wave fichier 3 alors je copie la ligne à la suite de la dernière colonne sur mon tableau produciton

A la fin, j'aurai un tableau final que je pourrais transformer en TCD pour faire de l'analyse.

Je ne sais pas si je suis très clair.

Veux tu plus d'explication ?

Salut,

Ce n’est vraiment pas évident de t’aider, avec ton travail évolutif à moitié complet.

Ce n’est pas dit que je vais te suivre très longtemps.

Selon ce que j’ai compris, je pense que tu devrais effectuer le travail récapitulatif après avoir exporté toutes tes données sur les différentes feuilles que comportera ton travail.

Dans le fichier ci-joint, j’ai donc neutralisé tes deux passages Call destruction_XXXX ainsi que les deux macros y relatives.

Mais sur la base de l’une de tes deux macros destruction_XXXX, j’ai créé la nouvelle macro Sub Récapitulatif() qui est appelée tout à la fin de ta macro Sub consolider(), juste avant le MsgBox.

Cette macro passe en revue et active l’une après l’autre toutes les feuilles de ton fichier, à l’exception de la feuille ‘’manage’’. Si c’est la feuille ‘’production’’ qui est activée, ses lignes sont passées en revue et soit elles sont supprimées, soit les données correspondantes des autres feuilles y sont reportées. Si c’est les autres feuilles qui sont activées, telle que la feuille ‘’debatcher’’, seules les lignes inutiles y sont effacées. J’ai ajouté une feuille ‘’ Poste de travail 3’’ pour la démo.

Amicalement.

Merci Yvouille pour cette orientation et le temps que tu m'as consacré. Je vais regarder ce point ce week end.

Et alors, mon travail t'a été utile ?

Salut,

Oh excuse moi de ma réponse tardive. Oui super utile. Le problème est maintenant de débloquer plus de temps pour travailler mon sujet. Aujourd'hui, mon problème est que je n'ai pas assez "de sécurité" sur mes fichiers sources (tout le monde peut rentrer ce qu'il veut comme donnée et je voudrais vé rouiller cela.

En tout cas je te remercie pour ton travail.

Vincent

Rechercher des sujets similaires à "importer donnee fichier fonction date"