Création d'un planning - Copie d'une feuille à une autre
Bonjour à tous,
Je travaille actuellement sur une méthode de récupération de donnée depuis un fichier avec un nom aléatoire en fonction de la semaine de l'année en cours dans le cadre de l'élaboration d'un planning.
La macro pour la copie des données depuis le fichier est prête à quelques détails près.
Je suis amateur + en vb et je bloque actuellement sur plusieurs parties de la macro de recopie des données dans les bonnes cellules en fonction du tableau destinataire.
1ère partie : Récupération des données du fichier source (planning) : les jours du Lundi au Vendredi avec le planning des employés (y compris intérimaires); un onglet pour chaque jour.
2ème partie : Copie vers le fichier cible (horaire base) qui se fera sur deux fichiers différents car il y a deux sociétés d'intérim (cellule de couleur vert clair pour la 1ère société et de couleur mauve pour la seconde)
3ème partie : Copie des données précises pour chaque intérimaire pour sa mission qui peut aller de 1 à 7 jours, le compte rendu du planning étant hebdomadaire. C'est à cet endroit précis sur lequel je travaille actuellement et ou je bloque pour la macro car il y a pas mal de conditions....
Donc concrètement, le résultat final doit donner un tableau récapitulant le poste, la date de début et fin du poste, la ligne sur laquelle l'intérimaire a travaillé, ses horaires de travail et le service pour lequel il a travaillé. Sachant qu'il y a une feuille pour chaque jour dans le fichier.
Pour l'instant, les lignes importantes à récupérer sont la ligne, la fonction, le nom de l'intérimaire, le poste et le service mais s'il y a possibilité récupérer les dates de contrat et les horaires (je sais que c'est plus compliqué car ça demande une vérification entre une ou plusieurs feuilles....)
Pour la feuille commande, une fois les données récupérées; vérifier de la première à la dernière ligne la première cellule vide correspondant à la colonne B et y copier les données.
Par exemple, pour l'intérimaire Nawrocki C.
Il commence Lundi sur la ligne Rhéon, il travaille pour l'équipe D (cellule B27), il est de Matin donc horaire = 05h--13H (colonne B) ; il travaille pour le service Production (sous tableau A20 à D64) ainsi que la ligne Production (sous-tableau A20 à D26) et occupe le poste de aide-pétrisseur (1ère cellule de la ligne sélectionnée).
Si le lendemain (feuille Mardi), il est dans la même cellule (donc même valeur de cellule) alors début du contrat = Lundi et fin = Mardi sinon début du contrat et fin = Lundi ensuite s'il est dans la même cellule pour Mercredi (feuille mercredi) donc Lundi + Mardi + Mercredi (cellule B29.lundi.value = celluleB29.Mardi.value = celluleB29.Mercredi.value) alors début du contrat = Lundi et fin du contrat = Mercredi.... comme ça jusque Dimanche.
ATTENTION : il peut être sur la même ligne et équipe mais changer de poste.
Par contre pour les horaires c'est clair pour le service production :
colonne B = 05H00--13H00
colonne C = 13h00--21h00
colonne D = 21H00--05H00
ça devient plus compliqué pour les autres services car cela peut-être noté sous différents formats..... par exemple magasinier ou nettoyage!
Je joint en fichier joint le fichier source et le fichier cible pour que vous compreniez mieux ce que j'essaie de mettre en place et ce que j'ai commencé à coder.
N'hésitez pas à modifier si nécessaire, toute idée est bonne à prendre si elle est construite !
Merci d'avance et bonne soirée.
Fichier cible :
Bonsoir
J'ai commencé à regarder ton fichier ainsi que tes demandes
J'ai quelques questions
Pourquoi copier les feuilles, avec liaison, les feuilles du fichier "HorairesS40" dans l'autre fichier ?
Pourquoi ne pas travailler directement avec les feuilles du fichier "HorairesS40" ?
La zone de recherche sera t'elle toujours de la ligne 21 à 72 ?
Comment savoir la durée d'un contrat quand l’intérimaire travaille 1 jour sur 2 ("François L") ?
Comment est noté un intérimaire qui fait plusieurs horaires dans la semaine ("Feron S") ?
Comment note t-on un intérimaire qui fait plusieurs Postes/Lignes par semaine ("Fremeaux J")?
Dans le fichier joint j'ai listé/classé tous les intérimaires trouvés dans les pages
Il faudrait que expliques (fais des exemples) la manière de regrouper leurs informations
Info: Le nom des intérimaires doivent être le même dans toutes les pages " Gregorczyk R " et " Grzegorczyk R " sont différents
C'est juste une ébauche et pas un gage de continuation, tout dépend de la complexité du programme et des réponses aux questions
Bonsoir Banzai54 !
Tout d'abords, cela semble correspondre à ma recherche, je confirmerai après
Les feuilles ont été copiés avec liaison car les deux fichiers sont distinctement différents.
Si une meilleure solution existe pour la copie des données, je suis preneur. En effet, je souhaiterai automatiser les fichiers de façon à automatiquement récupérer les données dans tel dossier nommé par exemple :
[2013]/[Societe d'interim]/[Societe N°1] ou [Societe N°2] / HorairesS01.xls, HorairesS02.xls, etc... jusque HorairesS52.xls
[2014]/[Societe d'interim]/[Societe N°1] ou [Societe N°2] / HorairesS01.xls, HorairesS02.xls, etc... jusque HorairesS52.xls
[2015]/[Societe d'interim]/[Societe N°1] ou [Societe N°2] / HorairesS01.xls, HorairesS02.xls, etc... jusque HorairesS52.xls
Le planning sera toujours effectué à la semaine mais un pour l'utilisation et l'affichage dans la société (Horaires semaine 40) et un autre pour l'utilisation de statistiques et vérification avec la société d'intérim en question (Horaires base)
Sachant qu'une fois les données récupérées dans Horaires base, elles seront modifiés si nécessaire et ensuite utilisées.
Concernant la zone de recherche, il y en aura en fait 4 mais la principale étant la production.
1ère Zone : Cellules B3 à C4 (Service Nettoyage)
2ème Zone : Cellules B6 à C11 (Service Logistique)
3ème zone : Cellules D11 à D12 (Service Magasinier)
4ème zone : Cellules B21 à D64 et non 72, petite rectification (Service Production)
Si un employé travaille 1 jour sur 2, cela lui fera 2 contrats d'1 journée.
Pour ces deux questions :
Comment est noté un intérimaire qui fait plusieurs horaires dans la semaine ("Feron S") ?
Comment note t-on un intérimaire qui fait plusieurs Postes/Lignes par semaine ("Fremeaux J")?
Pour chaque jour travaillé s'il y a une différence entre ligne et/ou poste et/ou horaires, il faut différencier ligne par ligne.
Donc par exemple, pour ("Feron S"); cela fera 4 lignes comme ton résultat l'indique .
Par contre , si le même intérimaire se retrouve sur un poste et sur une ligne et avec les mêmes horaires alors indiquer le nombres de jours ("x") ou il travaille dans ses conditions.
Concernant le nom des intérimaires, petite erreur que je vais regarder de près car il pourrait y en avoir d'autres.
Une fois les données répertoriées, il y a un tri qui est fait par ordre alphabétique puis chronologique puis renumérotation de la 1ère colonne si elle a changée.
Pour une 1ère ébauche, cela semble correspondre quasi parfaitement à ma 1ère recherche avec le service production.
Bonne continuation.
Bonjour
Des réponses qui amènent d'autres questions
alex62217 a écrit :Les feuilles ont été copiés avec liaison car les deux fichiers sont distinctement différents.
Heuu si les données sont copiées avec liaison il n'y a pas de différence
Quid de ma demande de travailler directement sur le fichier "HorairesS40" ?
alex62217 a écrit :Sachant qu'une fois les données récupérées dans Horaires base, elles seront modifiés si nécessaire et ensuite utilisées.
A quoi sert la liaison si tu les modifies ?
alex62217 a écrit :Donc par exemple, pour ("Feron S"); cela fera 4 lignes comme ton résultat l'indique .
Pourquoi ?
4 fois le même poste
3 lignes différentes (5000, 2500, et RHEON)
2 Horaires différents (13h00-21h00 et 5h00-13h00)
travail le Lundi et du Vendredi au Dimanche
Pour moi cela ferait 2 contrats (donc 2 lignes) mais je ne sais pas comment marquer dans le 2ème contrat les lignes (2500 et RHEON) sur lesquelles il a travaillé
Il est impératif que tu fasses des exemples
Sur la base du fichier que j'ai posté il faut que dans une copie de la page "COMMANDE" tu fasses des exemples de résultats que tu voudrais obtenir, avec des cas concrets et en expliquant pourquoi