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![]()
Partager