Report automatique des valeurs d'un ensemble de cellules d'un fichier vers un autre en fonction d'une valeur commune

Bonjour la commu,

D’ores et déjà merci pour l’entraide apportée aux pauvres néophytes/autodidactes/etc., dont je fais partie, qui viennent frapper à la porte.

Je vous soumets aujourd’hui deux fichiers qui servent à organiser les rôles de permanence de mon entreprise.

  • Un premier fichier sert à établir les roulements attribués aux différentes équipes. Ce fichier n’est accessible qu’à un nombre limité de collaborateurs. Il s’agit du fichier SV_QUOTAS_TAV.
  • Le second fichier est structuré par semaines et est destiné à un public plus large. Il sert notamment à renseigner roulement par roulement les collaborateurs des différentes équipes désignés.

En d’autres mots:
Le 1er fichier est un calendrier annuel global où sont attribués les roulements.
Le 2ème est un calendrier hebdomadaire structuré en feuilles par roulement journalier distinct dans lequel je souhaiterais reprendre les équipes désignées au sein du premier fichier.

J’ai cherché des solutions de mon côté. Notamment, j’ai établi une feuille synaptique dans le fichier SV_QUOTAS_TAV (feuille RECAP SHIFT PERM) avec une synthèse des roulements afin de faire lien avec le fichier de rapportage hebdomadaire.

Je l’avais créée afin de rassembler les données à reporter dans le deuxième fichier mais aussi car elle permet d’avoir une vue plus claire sur l’information détaillée dans les feuilles globales. Elle a donc une utilité en soi au sein du fichier.

Malheureusement, je n’y suis pas arrivé et c’est ici que se situe le noeud de mon problème et pour être pragmatique, voici un exemple:

  • pour le 06/01/2023, roulement 14-22, je souhaiterais reporter la plage H4:H7 de la feuille RECAP SHIFT du fichier SV_QUOTA_TAV vers la plage E7:E10 de la feuille ven 06-01 14-22 du fichier Perm TAV.
  • pour le 06/01/2023, roulement 22-07, je souhaiterais reporter la plage H9:H12 de la feuille RECAP SHIFT du fichier SV_QUOTA_TAV vers la plage E7:E10 de la feuille ven 06-01 22-07 du fichier Perm TAV.
  • etc.

Pour info, le fichier Perm TAV comporte normalement plus de feuilles. La structure est fixe et les dates sont incrémentées au sein de chaque feuille de la semaine à partir de la première feuille (B3).

Chaque feuille est renommée par macro avec l’abréviation du jour de la semaine, la dat et le roulement avec la valeur de la cellule K4. Je suis passé par une cellule ‹ tampon › car je n’avais pas de déclenchement worksheet change avec les cellules qui contenaient les formules pour l’incrémentation de la date.

Aussi, cette cellule K4 est une référence unique dans les deux fichiers que je pensais donc aussi pouvoir utiliser pour récupérer les données à migrer d’un fichier à l’autre. La même structure est utilisée dans la feuille RECAP SHIFT PERM du fichier SV_QUOTAS (cfr. H3; I3; H8; etc.).

J’ai encadré en rouge des exemple de données sources du fichier SV_QUOTA_TAV et les cellules cibles dans le fichier Perm TAV.

Et si je suis donc là, c’est que je n’y arrive pas… J’ai essayé des combinaisons avec EQUIV et INDEX mais sans résultat. Je me demande si le problème ne réside pas dans le fait que je n’ai pas un tableau ‹ simple › où chaque colonne contient l’information pour un seul et unique roulement mais une matrice où l’information est trop disséminée.

Je me demande donc si un code vba ne permettrait pas d’effectuer la récupération des données d’un fichier à l’autre mais pour être honnête je ne sais me borner qu’à singer les codes trouvés sur les forums.

Voilà, ce n’est pas toujours facile d’être clair mais j’espère qu’une bonne âme pourra identifier des pistes de solution.
Bonne journée.
Harry
Perm TAV.xlsm (40,2 Ko)
SV_QUOTAS_TAV.xlsm (34,8 Ko)

Hello,

J’ai pu prendre un petit peu de temps pour lire tes explications.

Je vais me permettre simplement de te donner ma vision de ce que j’ai pu voir sur ta construction et mise en place de tes fichiers

J’ai bien compris ce que tu souhaitais faire.

Au vu de la structure et la mise en place de ton fichier et encore mon niveau limité de Excel je ne vais pas pouvoir t’aider même avec l’écriture d’une formule.

Aux vues de tes écrits j’imagine que tu sais comment on fait les recherchesV, index et tout ça.

En partant de ton fichier « Perm », je ne sais pas comment lui demander d’aller chercher l’information qu’on souhaite dans le fichier « Quoate »

Par date il prendra pas, « ven 06-01 14-22 », part nom mais ou ? ou part référence ?.

De mon avis mais bien sure purement personnel peux etre serai t’il prèfèrable de partir de ton onglet « Janvier » ou visiblement tu a tout ta base donnée pour pouvoir trier part jour pour un meilheure visuel.

J’espere avoir pu t’aider a ma facon :frowning:

S

1 « J'aime »

Bonjour

Ci-joint ma proposition en VBA
les 2 fichiers doivent être ouverts
Fichier « SV_QUOTAS_TAV.xlsm » onglet « RECAP SHIFT PERM » cliques sur le bouton « Récupération »
Constates le résultat dans les cellules encadrées en rouge

Fais des tests et dit moi

Dans le fichier « Perm TAV.xlsm » les noms d’onglet source doivent être sous la forme « jjj » (3 premières lettres du jour de la semaine en minuscule) et le nom à l’identique exacte de celui intégré dans les tableaux du fichier « SV_QUOTAS_TAV.xlsm » onglet « RECAP SHIFT PERM »

SV_QUOTAS_TAV.xlsm (39,6 Ko)

2 « J'aime »

@Johnny , @FFO,
Merci de m’avoir lu et de vos propositions.
Désolé pour mon silence mais je suis actuellement en déplacement. Retour à la normale la semaine prochaine et je regarde à tout ça.

1 « J'aime »

Back to business…
Merci encore de vous être penchés sur mon problème.

@Johnny , j’ai effectivement testé différentes fonctions rechercheV, index et equiv mais sans succès. Je n’ai bien sûr aucun problème à partir de l’onglet ‹ Mois › plutôt que de l’onglet ‹ recap › mais je pensais plus simple de partir de ce dernier qui va comporter les 12 mois de l’année.

@FFO , ta solution fonctionne à merveille mais pas dans le bon sens :upside_down_face:. A vouloir être trop complet ou précis je me rends compte vous avoir embrouillés.
En fait les données sources sont celles du fichier Quota et devraient être ‹ envoyées › dans le fichier Perm, comme dans le printscreen de Johnny.

J’ai essayé de transposer la macro dans l’autre sens mais évidemment cela ne fonctionne pas. Cela aurait été trop simple…

Bref, les données devraient être récupérées dans Quota pour être insérées dans Perm.

Il existe une référence unique dans les deux fichiers qui peut éventuellement aider à la solution (en vert):

  • la référence du shift, en-tête dans le fichier service quota
  • le nom de l’onglet concerné dans le fichier Perm
  • la cellule K4 de chaque onglet du fichier Perm (qui me sert à renommer automatiquement l’onglet par macro, en fait).

Vu la solution de FFO, je suppose qu’une solution pourrait également être produite pour le transfert des données du fichier Quota vers Perm.

Bonne journée. HB

Bonjour
Bizarre dans cette approche d’avoir dans les onglets à alimenter du fichier « Perm TAV.xlsm » des listes déroulantes pour par le choix de celle-ci intégrer dans les cellules des données qui seront apportées par ce traitement
Si on doit nourrir des cellules par la procédure à mettre en place pourquoi leur avoir mis des listes déroulantes ?
Je reste perplexe
Toujours est-il que tu trouveras ci-joint ton fichier adapté dans cet esprit
Testes et dis moi

SV_QUOTAS_TAV.xlsm (40,2 Ko)

Bonjour,
Magnifique ! J’ai repris la macro dans mes fichiers complets et, de mes premiers tests, cela fonctionne parfaitement ! C’est donc un tout grand merci que je t’adresse.

Pour pinailler, et c’est une question d’ergonomie personnelle que je n’avais pu anticiper, la macro pousse les données du fichier Quota vers le fichier Perm_TAV et y fait donc référence.
Aussi, après avoir poussé les données d’une semaine et avoir sauvegardé Perm_TAV sous un autre nom (avec les infos de la semaine), il faut fermer le fichier et rouvrir le ‹ template › pour procéder à une seconde semaine, et ainsi de suite. Sinon, il me dit évidemment que le fichier Perm_TAV n’est pas ouvert.

Je me pose donc la question de savoir si le cas de figure permettrait plutôt de tirer les données avec une macro placée dans le fichier Perm_TAV et qui ne nécessiterait pas de ‹ figer › le nom du fichier dans la macro.

Nous sommes bien d’accord que la solution proposée répond au problème, me fait gagner du temps et m’évite de reporter des erreurs. :pray:
Aussi je ne demande pas spécialement qu’une nouvelle solution soit recherchée en ce sens (je suis conscient qu’il y a d’autres membres à aider), mais si, intellectuellement parlant, qqun souhaite réfléchir à cette autre approche…
Ici, c’est notamment ma curiosité qui parle. En effet, est-il impossible de solutionner à partir de PERM_TAV, la solution proposée semblait-elle simplement la plus simple ou la plus logique, etc ?

Ce monde du VBA m’est encore bien inconnu et je râle de ne pas tout comprendre à la solution proposée… :grinning:

Quant à tes interrogations sur le fait de nourrir des cellules présentant des listes, je peux comprendre ta perplexité mais cela s’explique :

  • parce qu’elles sont imbriquées avec une autre liste déroulante pour le choix du collaborateur de l’équipe désignée (fonction indirect pour les coordonnées du collaborateur et ensuite complétion d’autres informations par rechercheV)
  • mais aussi parce que malgré la planification, il peut arriver que des changements ponctuels et manuels soient effectués et je ne souhaite donc pas perdre la sélection des collaborateurs de l’équipe et, en cascade, l’autocomplétion mises en place, par le fait d’un encodage hasardeux.

En tous cas, encore merci
HB

Merci pour ce retour

Ci-joint ton fichier « Perm TAV.xlsm » avec la macro « Récupération » adapté à lui
Toujours même exigence des 2 fichiers ouverts avant son exécution
A partir de ce fichier exécute la macro
Fais des tests et dis moi

Perm TAV.xlsm (40,0 Ko)

Bonjour @FFO ,
Merci pour le suivi de ma problématique.
Hier, après mes premiers tests, tout semblait parfait.
Aujourd’hui, collant la macro dans mon fichier de travail, je constate qu’elle ne récupère pas correctement toutes les données lorsque SV_QUOTAS présente plusieurs mois de données les uns en dessous des autres.

  • Je place un nouveau fichier SV_QUOTAS avec les mois de janvier et février. Pour une meilleure visibilité j’ai remplacé EQ par EZ dans les données de février.
  • Je place à nouveau ton fichier Perm avec la macro.

Si j’encode (dans la première feuille puisque les autres s’incrémentent àpd celle-ci) du fichier PERM un quelconque vendredi de janvier, l’import ne présente aucun problème.
Si j’encode un vendredi du mois de février, il semble que seuls les roulements 14-22 sont importés correctement.

Les données importées sont bien celles du mois de février (EZ)

Les données du mois de février ne sont pas importées, subsiste les précédentes données (EQ) qui n’ont pas été écrasées. Il en va de même si j’efface le contenu des cellules avant import. Après vérif dans mon fichier de travail, qui comporte tous les roulements d’une semaine, c’est à chaque fois les roulements 22-07 et 07-14 qui posent soucis.

Une idée ?
Merci et bonne journée.
Perm TAV_Rep 03.xlsm (40,1 Ko)
SV_QUOTAS_TAV.xlsm (21,3 Ko)

Bonjour

Les onglets « ven 10-02 22-07 » et « sam 11-02 07-14 » sont inexistant dans les tableaux de ton fichier « SV_QUOTAS_TAV.xlsm »
Quand j’exécute une recherche les concernant en ligne 19 voilà ce que j’obtiens :

Et aucune date dans les lignes qui suivent

Donc pour ces 2 onglets aucune donnée ne peut être récupérée

Réalimentes ton tableau de ces dates manquantes et cela devrait le faire

Dans le premier tableau « JANVIER » tous les bureaux ont leurs dates adaptées à leur référence ce qui n’est pas le cas du deuxième « FEVRIER » (lignes sur fond jaune) :

Mais quel boulet je suis !!!

Le problème se situe effectivement sur l’absence des en-têtes. J’avais eu un problème sur certaines de ces lignes où la syntaxe de la formule s’affichait à la place du résultat. J’avais laissé cela de côté et puis c’est tombé dans l’oubli.

Ta proposition sur le fichier Perm TAV est donc juste parfaite :+1:
Je coche la solution.

Merci encore pour ton temps.

Je m’en vais créer un nouveau sujet pour l’enregistrement et la protection des fichiers après import.
HB

Je te rassure je suis moi aussi sujet à ce genre de situation
Et de ne rien detecter tant le cerveau est bloqué à celle-ci
Il faut un regard extérieur pour le sortir de sa paralysie
Et de se traiter de tous les noms tant l évidence il n a pas su appréhender
Passer le relais est salvateur lorque nous sommes dans une impasse

Merci pour ta validation

Au plaisir une prochaine fois