Copier des données dans des feuilles à partir d'un tableau
Bonjour à tous,
J'apprécierais que l'on puisse m'aider afin de concevoir des instruction VBA afin de copier des données provenant de feuilles de données dans plusieurs feuilles de transfert (voir fichiers : "Sommaire_IST_V1.xlsm" & "Sommaire_DE_V1.xlsm" ci-joints).
1)
J'ai un premier fichier "Sommaire_IST_V1.xlsm" constitué des deux feuilles de données et plusieurs feuilles de transfert. Le n° ID est unique à chacune des feuilles de transfert "1", "2", "3" & "4" en "C8". Le nombre de feuilles de transfert est variable (généralement supérieur à 4 contrairement à cet exemple). La feuille "SOMMAIRE_HISTORIQUE_IST" contient 40 lignes d'entrées de données. La macro devra fonctionner si on ajoute des lignes additionnelles. Afin d'identifier les feuilles de transfert, un test sur toutes les feuilles devra être fait pour déterminer si la cellule B8 contient le texte "ID :".
Une fois les données entrées par l'utilisateur dans la feuille "SOMMAIRE_HISTORIQUE_IST" , la première macro devra trier par ordre chronologique inverse (date la plus récente à la plus ancienne) les informations (colonne B en premier et colonne C en deuxième) dans le tableau et copier les données correspondantes dans chacune des feuilles de transfert (ligne 94 à 103) en fonction du n° ID tel que décrit dans le fichier "Sommaire_IST_V1.xlsm" .
Une autre macro devra effectuer des opérations similaires avec la feuille "SOMMAIRE_PIECES" contient 15 paires d'entrées de données. Encore une fois, la deuxième macro devra fonctionner si on ajoute des lignes additionnelles. Une fois les données entrées par l'utilisateur dans la feuille " SOMMAIRE_PIECES ", la deuxième macro devra trier par ordre chronologique inverse (date la plus récente à la plus ancienne) les informations (colonne C en premier et colonne F en deuxième) dans le tableau en associant les paires d'informations (ligne 5 & 6 ensemble, ligne 7 & 8 ensemble, etc) et copier les données correspondantes dans chacune des feuilles de transfert (ligne 72 à 85) en fonction du n° ID tel que décrit dans le fichier "Sommaire_IST_V1.xlsm" .
2)
Finalement, j'ai un autre fichier "Sommaire_DE_V1.xlsm" constitué d'une feuille "SOMMAIRE_HISTORIQUE_DE" contient 40 lignes d'entrées de données. La macro devra fonctionner si on ajoute des lignes additionnelles. Le n° ID est unique à chacune des feuilles de transfert "A_100", " B_101", " C_102", " D_103" ", "E_104" & " F_105" en "G6". Le nombre de feuilles de transfert est variable (généralement supérieur à 6 contrairement à cet exemple).. Afin d'identifier les feuilles de transfert, un test sur toutes les feuilles devra être fait pour déterminer si la cellule G5 contient le texte " Identification (ID)".
Une fois les données entrées par l'utilisateur dans la feuille "SOMMAIRE_HISTORIQUE_DE", la macro devra trier par ordre chronologique inverse (date la plus récente à la plus ancienne) les informations (colonne B en premier et colonne C en deuxième) dans le tableau et copier les données correspondantes dans chacune des feuilles de transfert (ligne 59 à 74) en fonction du n° ID tel que décrit dans le fichier " Sommaire_DE_V1.xlsm ".
Dans l'attente de vous lire,
Je vous remercie en l'avance pour votre aide.
Salutations,
Renaud D.
Bonjour gmb,
Merci pour votre aide et votre précieuse collaboration. Pour faire suite à votre dernier message, permettez-moi de faire quelques observations.
Première macro
Les feuilles de données (cellules A9 à V103) doivent être réinitialisées à chaque exécution de la 1ère macro et classer par date chronologique (date la plus récente en premier). Les données devront être triées par ordre chronologique dans la feuille "SOMMAIRE_HISTORIQUE_IST" comme dans l'exemple du fichier ci-joint ("Sommaire_IST_V3.xlsm") avant d'être copiées dans les feuilles de données. Actuellement, les dates et les heures ne sont pas triées.
Les données "ID" copiées dans la colonne "A" (feuilles de données) sont décalées d'une cellule vers le bas.
Les n° ID seront constitués d'un minimum de trois chiffres (exemple : 001, 002, 003,... 99999). Lors de la copie dans les feuilles de données, la nomenclature devra demeurer inchangée (exemple : ID : 001, valeur copiée dans colonne "A" : 001 au lieu de "1",etc). Idem pour la deuxième macro.
A chaque exécution de la 1ère macro, les données sont ajoutées à celles existantes alors qu'elles devraient les remplacer. L'espace réservé des lignes 94 à 103 des feuilles de données sera suffisant pour contenir toutes les données à transférer.
Dans les feuilles de données (ligne 91), les noms d'entête utilisés sont à titre indicatif. Or, lorsque des noms d'entête sont différents, la macro plante (idem pour la 2ème macro / ligne 70). Les macros devraient s'exécuter indifféremment des noms d'entête. Est-ce possible ? Les entêtes réelles sont celles qui apparaissent dans la feuille "5" (lignes 70 & 91).
Deuxième macro
Les feuilles de données (cellules A72 à U85) doivent être réinitialisées à chaque exécution de la 2ème macro et classer par date chronologique (date la plus récente en premier). Les données devront être triées par ordre chronologique dans la feuille "SOMMAIRE_PIECES" avant d'être copiée dans les feuilles de données.
A chaque exécution, de la 2ème macro, les données sont ajoutées à celles existantes alors qu'elles devraient les remplacer. L'espace réservé des lignes 72 à 85 des feuilles de données sera suffisant pour contenir toutes les données à transférer.
Si vous pourriez effectuer les modifications nécessaires afin de corriger ces petits problèmes, cela serait fort apprécié. Vous avez fait un beau travail et je vous en remercie.
Au plaisir de vous relire.
Sincères salutations,
Renaud D.
P.S. : N'oubliez pas les macros pour le fichier "Sommaire_DE_V1.xlsm".
Bonjour
Voici un nouvel essai à tester.
Juste une petite remarque propos des classements chronologiques.
A partir de 2030, si on saisie une date dans une cellule sous la forme « 13/08/30 », Excel l’interprète comme « 13/08/1930 ». Il y aura un siècle d’écart. Il vaut donc mieux prendre l’habitude de taper les années avec quatre chiffres.
A te lire.
Bonsoir gmb,
Vos macros fonctionnent à merveille. Je suis entièrement satisfait.
Félicitations !
Ça fait du bien de savoir que l'on peut compter sur des personnes chevronnées et expérimentées dans la programmation comme vous.
Merci infiniment,
Renaud D.