mise à jour d'un fichier source vers un fichier destination Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
P
Prelude
Nouveau venu
Nouveau venu
Messages : 7
Inscrit le : 13 mars 2015
Version d'Excel : 2010

Message par Prelude » 13 mars 2015, 17:15

Bonjour à tous
Je débute en VBA ; je bloque totalement sur mon sujet. J’ai déjà fait des macro pour copier coller des données mais là je me heurte à un gros soucis. Voici ce que je souhaite réaliser :

Mettre à jour un fichier avec les donnés d’un autre fichier
Cependant, les deux fichiers ne sont pas construis de la même manière (pas le même nombre de colonne)
Je vous fournis 2 fichiers simplifiés (car j’ai plus de 1500 référence à gérer dans mon planning)

1ère étape :
Dans le fichier Destination (format csv), voici les lignes qu’il faut modifier : 2 conditions :
 - Colonne C=0
 - Colonne B = Broyage ou conditionnement

Une fois ces lignes repérées on va chercher dans le fichier source le statut en colonne B (j’ai besoin des informations de la colonne A & B du fichier destination pour retrouver le statut dans le fichier source) :
 -Si le statut de destination est égal à 0 alors on ne fait rien
 -Si le statut dans le fichier source est égal à 1 et que dans le fichier destination le statut est égal à 0 alors on reporte 1 dans la ligne adéquat de la colonne C et H du fichier de destination

2ème étape :
Suite à la mise à jour de la 1ère étape, je dois mettre à jour les délais. Je dois renseigner au moins 4 semaines de planning source dans le fichier destination (le mieux serait de mettre ce nombre de semaines en variable)
Dans le fichier destination, voici les lignes qu’il faut modifier : 2 conditions
 -Colonne C=0
 -Colonne B = Broyage ou conditionnement

Une fois ces lignes repérées on va chercher dans le fichier source les dates de début et de fin en colonne C , D , E et F (j’ai besoin des informations de la colonne A & B du fichier destination pour retrouver le statut dans le fichier source) :
Dans le fichier source, on sélectionne les opérations qui se déroule de cette semaine à dans 4 semaines (cf fichier source les lignes en jaune) , ensuite on reporte les données les colonnes CDEF dans le fichier destination :
 -Dans les Colonnes D E F G
 -On insère un 1 dans la colonne H pour indiquer qu’i l y a eu un traitement
Je ne sais pas si cela est possible mais ça m’éviterai de passer des heures à mettre à jour le fichier chaque semaine. :roll:
Merci d’avance de votre aide
Cordialement
FICHIER DESTINATION.csv
j'ai omis de vous transmettre les fichiers
(907 Octets) Téléchargé 21 fois
FICHIER SOURCE.xlsx
(10.08 Kio) Téléchargé 25 fois
P
Prelude
Nouveau venu
Nouveau venu
Messages : 7
Inscrit le : 13 mars 2015
Version d'Excel : 2010

Message par Prelude » 14 mars 2015, 10:39

Bonjour,
je souhaiterai connaître la démarche pour pouvoir coder cette macro ; je n'ai aucune idée comment je dois agencer mon code (boucle, variable, condition). Je continue de chercher de mon côté mais pourriez vous dégrossir un peu le terrain SVP ?

Merci d'avance

Cédric
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 11'643
Appréciations reçues : 195
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 14 mars 2015, 11:36

Bonjour et bienvenue sur le forum

Un essai à tester.
Les deux fichiers doivent être ouverts.
Cela te convient-il ?
Bye !
FICHIER SOURCE v1.xlsm
(24.84 Kio) Téléchargé 37 fois
FICHIER DESTINATION.csv
(907 Octets) Téléchargé 39 fois
P
Prelude
Nouveau venu
Nouveau venu
Messages : 7
Inscrit le : 13 mars 2015
Version d'Excel : 2010

Message par Prelude » 15 mars 2015, 17:43

Bonjour Gmb,
c'est parfaitement ce que je voulais ; un grand Merci.
une petite précision stp : pour la deuxième étape, j'ai besoin actuellement de transférer les délais sur 4 semaines (ce nombre de semaines pourra varier en fonction de la planification que l'on souhaite établir) . Seulement quand je déclenche l''exécution de la macro la mise à jour de délai se fait pour toute les lignes.
Je t’ai mis en jaune les lignes qui suivent la condition des 4 semaines. (S + 3  de la semaine 11/2015 à 14/2015)
Si tu parviens à résoudre cette contrainte peux tu mettre le nombre de semaine en variable stp ?
C’était déjà top mais après ça ce sera 100% terminé
Merci d’avance
P
Prelude
Nouveau venu
Nouveau venu
Messages : 7
Inscrit le : 13 mars 2015
Version d'Excel : 2010

Message par Prelude » 15 mars 2015, 18:02

Re bonjour

pour ma culture perso, tu déclare la variable wDest mais elle n'apparaît pas dans le code. Peux tu me dire à quoi elle sert donc ?
Merci
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 11'643
Appréciations reçues : 195
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 15 mars 2015, 23:32

Bonjour

Je suis désolé mais je ne comprends pas.
Fais moi un exemple avec :
• Le tableau de départ
• Le tableau tel que tu veux l’obtenir
• Une explication sur ce que tu entends par ‘’transférer les délais sur 4 semaines’’

Quant à la variable wDest, j'ai dû penser en avoir besoin avant de comprendre que je pouvais m'en passer. Mais j'ai oublié de supprimer sa déclaration.
A te relire.
Bye !
P
Prelude
Nouveau venu
Nouveau venu
Messages : 7
Inscrit le : 13 mars 2015
Version d'Excel : 2010

Message par Prelude » 18 mars 2015, 19:24

bonjour Gmb,

ci joint le fichier source avec quelques explications.
J'ai tenté d'insérer la formule qui irait bien dans le code mais cela ne fonctionne pas.

Merci
FICHIER SOURCE v1.xlsm
(21.99 Kio) Téléchargé 18 fois
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 11'643
Appréciations reçues : 195
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 18 mars 2015, 21:35

Bonjour

Nouvelle version à tester.
Bye !
FICHIER SOURCE v3.xlsm
(28.41 Kio) Téléchargé 31 fois
P
Prelude
Nouveau venu
Nouveau venu
Messages : 7
Inscrit le : 13 mars 2015
Version d'Excel : 2010

Message par Prelude » 22 mars 2015, 17:52

Bonjour à tous,

pour moi c'est tout bon.
Merci encore Gmb :D

Prelude
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message