Exportaion et mise à jour de données

F

François

Guest
Salut à tout le forum,

Bon, j'ai une petite question (j ai eu beau chercher dans l'historique, mais je m'embrouille...)
En fait, à partir d'une GPAO, j'exporte des données dans Excel. Tous les jours, je fais une mise à jour de ces données et je voudrai donc que les nouvelles données soient incrémentées, les anciennes supprimées et les doublons sauvegardés en 1 exemplaire.
Explication :
le 24/01, j'exporte ces données:

Client A
Cde 01 , réf 01 , Date 01
Cde 02 , réf 02 , Date 02

Client B
Cde 03 , réf 03 , Date 03
Cde 04 , réf 04 , Date 04

Client C
Cde 05 , réf 05 , Date 05


le 25/01, je fais ma mise à jour et là mes données sont :

Client A
Cde 01 , réf 01 , Date 01

Client B
Cde 03 , réf 03 , Date 03
Cde 04 , réf 04 , Date 04

Client C
Cde 05 , réf 05 , Date 05
Cde 06 , réf 06 , Date 06

Donc, par l'intermédiaire d'un bouton-macro, je mettrai à jour mon système, soit élimination de la ligne 02 du client A, sauvegarde de la ligne 01, 03, 04, 05 et incrémentation de la ligne 06.



Voila, j'espere que c'est assez clair ?
Si qq1 pouvait m'aider, je lui en serait infiniment reconnaissant !

Merci d'avance à tous.
 
W

WILFRIED

Guest
Salut François,

Il y a quelque mise en garde pour ta demande, tees sauvegarde d'historique risque de saturé ton classeur car admettons que tes donnes change tous les jours, tu vas donc créer une feuille d'historique par jour, or excel ne peut contenir que 255 feuille dans un même classeur donc 254 jours d'historique avec ton fichier mis à jour.

Soit moins d'une année.

Pour pouvoir aller plus loin mets un exemple sur ce post avec le type de donné qui seront présentes dans ton fichier saut éventuel de colonne ou ligne, contenue de celulle de type numérique/texte ou les deux etc...

A+ wilfried ;op
 
F

François

Guest
Salut wilfried,

Jai joint le fichier, tu pourra donc voir de quel type sont mes données que j'importe dans mon fichier excel.

je voudrai donc que pour le fournisseur AM par exemple, lorsque je fais ma mise à jour (que j aurai préalablement exporter dans la feuille 1), mon tableau sur la feuille 2 reconnaisse les lignes et m'intègre les nouvelles données concernant AM, me suppriment celles qui ne sont plus d'actualité et me gardent celles qui persistent.
mais en aucun cas, je veux archiver quelques éléments que ce soit.

en espérant avoir été un peu + clair, merci.
 

Pièces jointes

  • RESTEARECEVOIR.zip
    3.5 KB · Affichages: 19
W

WILFRIED

Guest
Salut François,

En regardant ton fichier et en reflechissant, je me demandais pourquoi ne pas transformer ta feuille1 qui est à jour en feuille source? A moins que tu est des liens ou formule lier à ta feuille 2 cela serait plus simple. Sinon ta demande est faisable, il suffit de scrutter chaque cellule ligne par ligne et de comparer.

Si tu veux quand même faire la MAJ j'essayrai de te faire une macro simple.

A+ Wilfried ;op
 
F

François

Guest
Salut Wilfried,

Pour le fait de transformer la feuille 1 en feuille source, pourquoi pas mais je ne suis pas sur de tout saisir exactement ! Car en fait, le lundi par ex., j’exporte mes données dans excel, et le mardi je fais une mise à jour. Donc, le mardi, si j’exporte directement mes données dans la feuille 1, je pense que j’écraserai automatiquement les éléments de la veille, non ? c’est pour ca que j’avais pensé exporter sur la feuille1 et faire le comparatif sur la feuille 2. mais après bon, je ne suis fixé sur rien, je débute dans VBA donc je suis ouvert à toute proposition !

Par rapport au fichier .xls joint :
Il n’y a pas de liens ou formules prévues, mais juste que par ex., si avec le fournisseur AM, j’attend une réf. XX pour le 28/01/04, j’aurai juste voulu pouvoir rajouter en bout de ligne un commentaire comme quoi par ex. il y aurait 3Jours de retard. Et donc en faisant ma mise à jour, je souhaiterai garder cette annotation si cette commande est toujours d’actualité lors de ma mise à jour.

Donc en fait :
1 - repérer les lignes exportées par rapport au nom du fournisseur (histoire de les classer – lisibilité)
2 – et donc ensuite pour chaque client :
a) supprimer les anciennes lignes qui n’apparaissent pas dans la nouvelle mise à jour
b) rajouter les nouvelles lignes qui apparaissent dans la nouvelle mise à jour
c) repérer les doublons (lignes présentes le Lundi et donc aussi le mardi lors de la mise à jour), que ces lignes apparaissent en 1 seul exemplaire chacune, et donc si possible garder le commentaire s’il y eu un commentaire inscrit (enfin juste lier la cellule du commentaire à la ligne, si la ligne bouge, que le commentaire bouge aussi, c’est tout !)

Bon, j’espère avoir été + clair et avoir répondu à très interrogations. Tient moi au courant si tu veux des renseignements supplémentaires.
En tout cas merci déjà de t’y pencher !

A+

François
 
W

WILFRIED

Guest
Re François,

Effectivement je n'avais pas penser à l'eventuelle commentaire.

Je vais essayer de te concoquetter (je sais pas si sa s'ecrit comme ça) une petit macro pour le tout et on vera.

A+ Wilfried ;op
 
F

François

Guest
Ok, je reprend espoir alors !!!! parceque j'essaye de mon coté mais l'embrouille complet !
Mais bon, c'est la première fois que je me plonge dans VBA. Avec ma bible du VBA sous le coude, je pensai que ca allait passer tranquille, et ben, je me ravise !!!

Bon, eh ben bon courage, et merci.
 
F

François

Guest
Salut Wilfried,


Bon, déjà un grand merci. Cela fonctionne apparemment comme je voulais mais j’ai plusieurs questions.

1 – Sur le fonctionnement (incrémentation, suppression, et sauvegarde), tout va bien mais pourquoi suis-je obligé de sélectionner la feuille à mettre à jour ? Ne pourrais-je pas en lancant la macro run mettre automatiquement à jour la feuille « Liste totale » puisque au final, y a que elle qui m’intéresse ?

2 – Parallèlement à ce pb (cela est peut être lié), sais tu comment cela se passe : Je vais dans ma GPAO, édite mon document et fais exporter les données. Là, je sélectionne le fichier excel et je pensais que ça allait le mettre sur la feuille « reste a recevoir » ou « feuille 1, ou 2 … » mais cela m’écrase tout. Quand je re-ouvre mon fichier excel (que tu m’a fait), je n’ai plus qu’une feuille avec dessus les données exportées ?
Si c’est impossible de sélectionner la feuille dans le classeur, est-il possible de lier 2 classeurs ? Par exemple, dans le classeur1, j’exporte mes données, et dans classeur2, je fais ma mise à jour.

3 – Sinon la mise à jour est parfaite, manquerait juste 2 petites choses :
a) améliorer la mise en page, c’est à dire sauter une ligne entre 2 fournisseurs différents (faire des paquets de fournisseurs en gros !) et colorier en bleu et gras par exemple :

AM
AM 5 Kg …..
AM 45 Kg …..

MEC
MEC 5 Kg …..
MEC 45 Kg …..

b) et également colorier en rouge la ligne où la date de réception (colonne 6) serait dépassée par la date du jour. En fait, cela me permettrait de suivre plus facilement les commandes en retard et de relancer.

4 – Et pour finir, pourrais-tu m’expliquer brièvement le cheminement que tu as fait pour y arriver ? Car j’ai un peu essayé de comprendre (histoire d’apprendre !) mais …
a) En fait, tu as fait des macros séparées pour les insertions et suppressions + le tri suivant col. A et où tu les rappelles dans la macro run ?
b) Mais a quoi servent creat et supr_barre ?
c) La sauvegarde des doublons en 1 seul exemplaire est présente où dans la macro ?

5 – T’as mis combien de temps pour faire ça ? et donc parallèlement cela fait combien de temps que tu fais du code ? Car ça me fait un peu peur ! Quand je vois le nombre d’instructions, j’aurais mis 6 mois tout seul !

Eh ben ! en tout cas , cela est déjà vraiment super ! Encore merci !
 
W

WILFRIED

Guest
Salut François,

Je vais te mettre des explications dans les feuille code.

Les fonctions créat_barre et supprime barre serve à génerer la barre de bouton temporaire qui se trouve en haut d'Excel.

Je fais de la macro depuis 18 mois, j'ai commencer en autodidacte, avec une petit formation pour apprendre la gestion des variables car au début je ne les dimenssionnaient pas, ne les déclaraient même pas ....

Cela me donnait des "DOCTEUR WATSON" à tous va :-(

J'ai beaucoup appris grâce au forum, en regardant les exemples sur les différents post et la zone téléchargement. Puis je me suis lancer.

Pour ton boulot j'ai du mettre environ 4 ou 5 heures pour le tous car j'avait du mal à voir comment faire exactement donc j'ai chercher à taton.

J'ai tendance à faire des sub différente car c'est plus facile pour moi pour le débugage. Je test les fonctions séparément d'abord puis en groupe.

J'y pense la création et la suppréssion des barres sont lié au thisworkbook.

Je vais voir pour tes autres demandes et te repost le tous aujourd'hui ou plus probablement lundi.

A+ et bon week-end Wilfried ;op

Ps il faudra surement exporter ton fichier vers un deuxième classeur. A-t il toujours le même nom et même lieu de stockage car si oui la mise à jour pourrais ce faire automatiquement à l'ouverture du fichier. Mais j'ai peur que cela risque de générer des erreur de gestion (si tu ouvre ton fichier juste pour voir où tu en est et que ton fichier de MAJ est trop ancien alors ta MAJ sera fausse!)
 
W

WILFRIED

Guest
Salut François

La selection de la feuille qui t'interesse existait déjà, s'était un problème de texte de la question qui est corrigé.

Il faut que tu exporte ta MAJ vers un fichier *.xls, tu copie la feuille dans le fichier contenant les macros puis tu lance le tous.

Je n'est pas fais de ligne vide car elle aurais créer des problémes de gestion dans les macros, tu verra j'ai utilisé une astuce en jouant avec les nuance de bleu pour les groupe de fab etc.

La mise en rouge des dates fonctionne chez moi.

Si tu as des questions sur le code n'hesite pas .

A+ wilfried ;op
 

Pièces jointes

  • Rep_Francois_V2.zip
    29.1 KB · Affichages: 24
F

François

Guest
Re Wilfried,

Bon, nickel !

1- Pour la mise à jour en rouge en rapport avec les dates, ca marche ausi chez moi donc c'est ok !

2- Pour le saut de ligne, c'est pas grave, et avec les nuances de bleu, ca me va, ca améliore la lisibilité donc c'est bon.

3- Pour la MAJ dans un fichier XLS, c'est ce qe je pensais et j'ai préparé ma macro pour copier les données importées automatiquement.

4- Pour la sélection de la feuille, concernant laquelle mettre à jour, j'avais compris laquelle sélectionner mais ma question portait sur le fait de devoir sélectionner telle ou telle page, car en fait ce sera tjrs la meme feuille (celle copiée) donc pas besoin de sélectionner, par défaut prendre la feuille copiée. Je vais voir si j arrive à modifier sinon, je te dirai.

5- Pour apprendre le VBA, j'ai un livre mais c'est la galère ! et c'est vrai que moi aussi, j ai un peu zappé sur les variables (string, range, plage...) j'y comprend rien ! mais bon, là , ca m'encourage ! je vais essayer de m'y pencher ce WE pour comprendre le code, à mon avis, j'aurai des questions. N'ayant pas internet chez moi, je te trecontacterai Lundi.
Pour la macro Barre, je n'ai tjrs pas compris, je vois pas trop à quoi elle sert, enfin on en reparle Lundi.

Mais tu dis que ca fait 18 mois que tu en fais, mais tu y étais souvent ? t y consacrai bcp de temps ?


Bon, je te tiens au courant, est ce ton adresse sur la poste est correcte ?, tu la regarde souvent car peut etre serait ce plus facile pour communiquer car la il faut commencer a remonter loin pour aller chercher le post !

Bon, bon WE et vraiment merci car tu m'a fait gagner vachement de temps et ca me motive pour me remettre sérieusement à mon apprentissage de VBA !
 
W

WILFRIED

Guest
Re

En effet mon addresse mail à la poste fonctionne nickel tu peut me contacter je l'ouvre dès que je suis sur le nette et elle me préviens lorsque je reçois un nouveau message.
Moi non plus je n'est pas le nette chez moi.

Pour les variables ,cela vient vite.

Le faite de communiquer par mail directement ne me gène pas. j'utilise la fonction rechercher pour retourner sur ton post.

Pour progrésser je me suis amuser à créer des interface totalement inutile pour moi. Mise en gras d'une cellule choix d'une couleur recherche du contenue d'une cellule, bref ce que l'on trouve de base sous excel, puis je me suis lancer dans l'automatisation de procedure récurente de mon boulot, et enfin j'ai fait un Puissance 4 (téléchargeable sur ce site merci le web master) ce n'est pas la dernière version car avec l'aide de JEF du forum (il se reconnaitera) je suis entrain de le simplifier et d'améliorer l'IA en mode 1 joueur + ordi.

Bref bon week-end et n'hesite pas a demander des renseignements.

A+ wilfried ;op
 

Discussions similaires

Réponses
2
Affichages
525

Statistiques des forums

Discussions
312 326
Messages
2 087 313
Membres
103 513
dernier inscrit
adel.01.01.80.19