Liaison de données
Pour répondre à tes questions :
- pourquoi les colonnes en rouge sont-elles visibles dans une feuille et pas dans l'autre ? Ou autrement dit : pourquoi deux feuilles quasiment identiques ?
Si les colonnes en rouge sont visibiles dans une feuille et pas dans l'autre, c'est parce que ce sont des informations que j'ai rajouté manuellement. Je ne veux pas qu'elles apparaissent dans la feuille source, c'est moi qui rajoute ces données.
En vérité, je veux aller chercher les informations dans un fichier source. Et non dans une feuille source du même classeur. Pour simplifier la compréhension, j'ai préféré parler de mise à jour d'une feuille à une autre.
- pour une même ligne de la feuille automatique, peut-il y avoir plusieurs interventions (un même client, un même article, etc)
Oui, il peut y avoir plusieurs mêmes données. Seulement, j'aimerais éviter de les regrouper. Les informations de chaque ligne du tableau me serviront pour construire des indicateurs (graphiques et autres).
- y a t'il des exploitations statistiques (sur les temps, le type de panne) à effectuer sur ces données...
Oui justement, je vais construire des indicateurs à partir de ces données.
En effet, m'attaquer au VBA me fait un peu peur...
Merci de m'aider en tout cas
Ok... Quand je parlais de mode d'acquisition des données, c'était bien pour savoir de quelle manière tu récupérais les données source.
A partir de là, je verrais bien l'algorithme suivant :
- au lancement de la macro, ouverture du fichier source (dans une feuille Paramètres, on enregistre le chemin d'accès au fichier, son nom et le nom de la feuille où se trouvent les données : si ces paramètres changent - le nom du fichier ou du dossier, par exemple, on modifie les Paramètres, pas le code);
- on parcoure la feuille source, et à l'aide d'un identifiant unique (le numéro, la référence ?), on met à jour les données : si l'identifiant n'est pas dans la feuille destination, on fait un ajout de la ligne, s'il y est on modifie la ligne, sauf les infos rajoutées (en rouge actuellement); et si on a dans la feuille destination des lignes qui ne se trouvent pas (ou plus ?) dans la feuille source, on supprime la ligne ou bien on indique que la ligne a été supprimée (à voir);
Tu vois que le code n'est pas encore écrit, du moins selon cet algo, peut-être que la solution de Gmb est plus rapide à mettre en oeuvre : s'il suit toujours ce fil, il pourra peut-être nous le dire...
Perso, écrire tout ça (et le contrôler, le débugguer, etc), je n'en ai pas le temps en ce moment, mais c'est loin d'être infaisable ! Par contre, et je vais me répéter, il faut faire ça sur des données finalisées (toutes colonnes en place !), sinon on prend le risque d'avoir le même travail à refaire ou à resuivre à chaque modification de structure de la feuille source ou de la feuille destination..
Salut Gibou,
J'ai avancé un peu sur le truc : cet aprème, je te livre une première version... Daniel
Gibou,
Une proposition dans les fichiers joints...
Respecter l'ordre suivant :
- enregistrer les 2 fichiers joints dans un dossier
Puis, dans le classeur "Gibou.xlsm" :
- dans la feuille Paramètres, définir le fichier source (bouton Parcourir) et les autres Paramètres
- lancer le traitement de mise à jour à partir du bouton Mise à jour de la feuille "Ficher automatique"
- si les feuilles sont renommées dans un des deux classeurs,venir reporterla modification dans les Paramètres
Voilà, j'espère que c'est ce que tu voulais...
Cordialement, Daniel
Woah, ton fichier est superbe Dan ! Merci beaucoup de t'être donné autant de mal pour moi
C'est exactement ce que je recherche ! Petite question : comment est-ce que je fais si je souhaite prendre + de colonnes en compte lors de la mise à jour ?
Par exemple, là lorsque je mets à jour ma feuille, cela m'affiche uniquement les données jusqu'à la colonne P de la feuille source
Eh oui, c'est ce que je disais à la fin de mon dernier post : il ne faut automatiser que quand la structure est complète...
Pour des colonnes supplémentaires, voir dans la procédure Traitement du module Traitements (pour accéder au VBA : ALT + F11) :
A la toute fin de la procédure, il y a la liste des colonnes à remplir : il suffit de compléter.
Worksheets(Onglet_Traitement).Range("A" & MaLigneDestination).Value = Worksheets(Onglet_Origine).Range("A" & MaligneOrigine).ValueDans cette instruction, Onglet_Traitement correspond à la feuille "Fichier automatique", tandis que Onglet_Origine correspond à la feuille "Informations" (qui n'apparaît que le temps du traitement, mais qui la copie temporaire du classeur source.
Attention, juste au dessus, la colonne qui reçoit l'information "Source supprimée" est la colonne Q actuellement. Si tu modifies la structure, il faut venir ici reporter la modification...
Bon courage ! Daniel
Bonjour,
Sélectionne aussi tes colonnes supplémentaires avant de mettre le filtre auto et elles suivront.
Ca fonctionne bien sur ton fichier de test sans rien faire de plus car tu as du mettre le filtre en dernier.
eric
Réponse au MP (merci de rester sur le forum)
Si tu sélectionnes 5 colonnes, alors que tu n'en as que 2 de remplies par exemple, et que tu mets le filtre auto les lignes des 5 colonnes suivent lors d'un tri.
Sur ton fichier test tu as dû mettre le filtre alors que la 3ème colonne était saisie donc elle a été bien intégrée par excel et lors du tri elle suit bien. Enfin chez moi et je n'ai pas d'excel particulier.
eric