Explorer et copier les cellules d'un tableau
Bonjour à tous,
Je souhaiterais (afin de gérer des prévisionnels de travail) copier des cellules d'un tableau contenant un cycle de travail composé de 12 semaines de 7Jours dans un calendrier.
Je vous joins le fichier contenant les 2 tableaux
Je souhaiterais créer une macro qui me permette de faire ceci :
1/ Je rentre manuellement dans la feuille prévisionnel au 1er Janvier 2015 le jour correspondant dans le cycle ( par exemple : le jour 4 de la semaine 8)
concrètement je rentre dans la feuille "prévisionnel" en B4 la formule suivante :
=Roulement!E9
2/ je souhaite maintenant créer la macro qui consiste à mettre au 2 Janvier (en C4 de la feuille previsionnel) la valeur suivante du tableau soit le J5 de la semaine 8
et ainsi de suite jusqu'à avoir parcouru la totalité du tableau et finir ainsi par mettre le J3 de la semaine 8
3/ il faut également rajouter la condition que le collage se fait selon le calendrier
ainsi les mois de janvier mars mai juillet Aout octobre décembre comporteront 31 jours
les mois de avril juin septembre novembre comporteront 30 jours
et le mois de février comportera 28 jours ou 29 jours selon les années ...
Pour cela j'ai mis en "A2" de la feuille prévisionnel la valeur de l'année sur lequel sera réalisé le test (pour l'année prochaine 2015 puis 2016 puis 2017 ainsi de suite au fur et à mesure des années)
4/ l'idéal étant que la fonction s'arrête une fois avoir atteint le 31 décembre et le must serait quelle affiche " la valeur du 31 décembre correspond à la valeur "ColonneLigne" de la feuille roulement"
Je crois que je demande quelque chose de très compliqué mais je ne sais pas du tout programmé en VBA ...
Si vous pouviez m'aider et m'expliquer ce serait super sympa
Merci d'avance
Georges
Salut et bienvenue sur le Forum,
J’ai compris que tu voulais utiliser les données de la feuille ‘Roulement’ les unes après les autres sans fin et en ne commençant pas spécialement à la première valeur, mais un peu n’importe où.
J’ai compris qu’avec ces valeurs tu voulais tout d’abord remplir la ligne 4 de la feuille ‘Prévisionnel’, dans l’ordre B4, C4, D4, etc.
Ce que je n’ai pas compris, c’est que veux-tu faire lorsque la cellule AF4 (31 janvier, première ligne) sera remplie : veux-tu continuer à remplir ton tableau sur la ligne 5 ou sur la ligne 6 ?
Pour tes autres souhaits, je n’ai pas tout très bien compris non plus, mais allons-y avec un problème après l’autre.
Cordialement.
Bonjour et bienvenue sur le forum
Une proposition, mais je ne suis pas sûr d'avoir tout compris...
Merci à Yvouille et gmb pour vos réponses.
Le fichier de gmb fonctionne bien.
petit bug : lorsque je rentre une année bissextile (exemple 2016), le script rempli bien le 29/02 comme prévu
or lorsque l'on repasse à une année non bissextile (exemple 2017), le script rempli toujours le 29/02 ce qu'il ne devrait pas faire ...
Je n'arrive pas à voir où est ce que ça cloche ...
Bonjour
tu écris :
Je n'arrive pas à voir où est ce que ça cloche ...
Et dire que Yvouille m'a repris un jour pour la même négligence : je n'ai pas réinitialiser la zone de résultats.
Voilà qui est fait désormais.
Quel mauvais élève je fais ! Pardon Yvouille !
Moi je débute seulement en VBA je pense que je vais vraiment m'y pencher mais le hic c'est que je voudrais sortir rapidement ce script
Je suis au boulot là. Je teste demain et vous dis si ça fonctionne ( même si je n'en doute pas
En tout cas merci déjà pour ta disponibilité
Bonjour,
Merci beaucoup gmb tout ceci fonctionne.
Je continue donc dans le developpement de ce script
J'ai créé ce bout de script
Sub couleur_bisextile()
Dim annee As Integer
annee = Range("A2")
If annee Mod 4 = 0 And (annee Mod 100 <> 0 Or annee Mod 400 = 0) Then
Range("AD6").Interior.Color = RGB(255, 255, 255)
Range("AD7").Interior.Color = RGB(255, 255, 255)
Else
Range("AD6").Interior.Color = RGB(0, 0, 0)
Range("AD7").Interior.Color = RGB(0, 0, 0)
End If
End SubCelui ci permet de colorier en noir les cellules en date du 29 février lorsque l'année n'est pas bisextile.
J'ai essayé de l'introduire ds ton code hélas ma variable annee fait bugger le script ... Je suppose donc que toi tu utilise la case A2 comme format "date" et du coup je ne sais plus comment géré mon morceau de script ...
Je me suis permis de changer également un bout de ton code (à savoir le tableau est parcouru 6 fois maintenant car si l'on sélectionnait la dernière case du tableau, le calendrier n'était plus rempli jusqu'au 31/12.
Super gmb !!
Tu m'es d'une aide précieuse.
continuons l'amélioration...
Je souhaiterais que dans la case M2 de la feuille roulement apparaisse la cellule atteinte au 31 Décembre.
C'est possible ?
Bonjour
Tu écris :
.Je souhaiterais que dans la case M2 de la feuille roulement apparaisse la cellule atteinte au 31 Décembre
Voilà :
Super la première partie de mon planning est donc finie puisque le roulement et prévisionnel sont ok
Je vais maintenant réfléchir à la suite de mon projet et vous demanderez certainement encore de l'aide pour continuer celui ci
Merci bcp gmb en tout cas.
Recoucou !!
J'ai bien avancé sur mon projet.
Un nouveau problème se pose à moi.
J'ai 53 classeurs...
Un classeur est un planning hebdomadaire qui récupère le planning prévisionnel de 52 ouvriers (ce sont les 52 autres classeurs)
Je souhaiterais que le classeur "Horaire réa CCV - général -version 2.xlsm" récupère les informations du prévisionnel de chacun des ouvriers
J'ai laissé à disposition un classeur prévisionnel ouvrier afin de pouvoir créer le script.
Voici donc ce qu'il faut faire :
Selon l'année, le classeur "Horaire réa CCV - général -version 2.xlsm" commence le planning le premier lundi de janvier
==> pour 2015 cela est le 05/01/2015 (mais ça change pour les autres années)
Il faut donc que ce classeur récupère la valeur de la case "05 janvier" (ou date correspondante) dans la feuille "prévisionnel" de l'agent concerné et la copie dans le Classeur "Horaire réa CCV - général -version 2.xlsm"
Attention il faut changer de page pour chaque semaine dans le classeur "Horaire réa CCV - général -version 2.xlsm"
Le nom de l'agent (pour l'exemple ici LECOMTE) est également le nom du classeur dans lequel se trouve le prévisionnel de l'agent
C'est difficile à expliquer sans avoir les classeurs sous les yeux.
J'espère que vous me comprendrez.
Bonjour
Il y a un problème : quand on ouvre ton fichier « Horaire réa CCV – général » sur l’année 2015, il se crée 52 feuilles correspondant à 52 semaines : S1, S2….S52
Or, la feuille S1 a un tableau qui va du lundi 5 au dimanche 11 janvier 2015.
Cela ne va pas.
La semaine 1 de 2015 est la semaine incomplète qui va du jeudi 1er janvier au dimanche 4
Du coup, je ne sais plus comment traiter le problème.
Et puis, je ne comprends pas bien où tu veux en venir :
Pourquoi y a-t-il deux tableaux identiques sur chaque feuille ?
Le report des données des feuilles nominatives (planning) doit-il se faire sur la 1ère ligne du 1er tableau ? des 2 ?
A quoi vont servir les autres lignes ? J’ai cru un moment que tu voulais récapituler sur chaque feuille les données hebdomadaires de plusieurs personnes…
A te relire
Salut gmb
Il y a un problème : quand on ouvre ton fichier « Horaire réa CCV – général » sur l’année 2015, il se crée 52 feuilles correspondant à 52 semaines : S1, S2….S52
Or, la feuille S1 a un tableau qui va du lundi 5 au dimanche 11 janvier 2015.
Cela ne va pas.
La semaine 1 de 2015 est la semaine incomplète qui va du jeudi 1er janvier au dimanche 4
Du coup, je ne sais plus comment traiter le problème.
Si cela est fait exprès
Le planning hebdomadaire commence toujours un Lundi pour nous
et la première semaine de l'année pour nous est celle qui commence le premier Lundi de Janvier
Soit pour l'année 2015 elle débute le 05/01/2015
(Les 4 premiers jours de janvier appartenant à la 52ème semaine de 2014)
Et puis, je ne comprends pas bien où tu veux en venir :
Pourquoi y a-t-il deux tableaux identiques sur chaque feuille ?
Il y a 2 tableaux identiques afin de rentrer le planning des 52 agents (je te remets une nouvelle version pour que tu comprenne mieu)
Le report des données des feuilles nominatives (planning) doit-il se faire sur la 1ère ligne du 1er tableau ? des 2 ?
A quoi vont servir les autres lignes ? J’ai cru un moment que tu voulais récapituler sur chaque feuille les données hebdomadaires de plusieurs personnes…
A te relire
Oui j'utilise toujours la première ligne pour remplir le poste (matin après midi ou nuit ou repos de l'agents)
La deuxième ligne ne sert qu'à remplir par la suite les heures sup
Tu as bien compris, le planning général est bien un récapitulatif hebdomadaire de 52 agents.
La personne qui gère les horaires part toujours du prévisionnel des 52 agents puis modifie afin de répondre au critère de présence du service mais en respectant au mieu le prévisionnel de chacun des 52 agents.
Ce que je cherche à faire est donc de mettre dans chacune des feuille S1 S2 ... S52 le planning prévisionnel des 52 agents.
Par la suite d'ailleurs (mais ça c'est un autre problème que l'on traitera plus tard) je vais créer un bouton qui déclenchera une macro qui recopiera le planning hebdomadaire (une fois modifié par la personne en charge des horaires) vers le planning réel de chacun des agents. Mais je pense qu'il faut régler un problème à la fois
Suis je un peu plus clair ? comprends tu où je veux en venir ?
Bonjour
Oups !
Oui, je comprends mieux !
Mais je comprends aussi que je vais attraper des migraines.
Tes feuilles S1, S2… etc sont très mal structurées. Ton tableau coupé en deux parties, mises cote à cote a de quoi me donner le tournis pour arriver à un résultat satisfaisant.
Et comme je ne suis pas masochiste, je te propose de garder ton tableau en une seule partie, avec tes 50 agents à la suite
Ou alors, je renonce, et passe la main, cela me prendrait trop de temps pour un résultat incertain.
Que décides-tu ?
c'est à dire mettre la deuxième feuille en dessous de la premiere ?
si c'est juste ça pas de soucis
Comme cela :
ok pas de soucis
Bonjour
Un nouvel essai.
Tu mets tous les fichiers nominatifs et le fichier réa CCV dans un même dossier.
Tu ouvres le dossier CCV et tu lances la macro « Report »
C’est un peu long : 25 secondes pour 2 fichiers (LECOMTE ET COMTELE) mais j’ai pas su faire mieux.
Cela te convient-il ?