Gestion d'info sur planning congé/travail

bonsoir,

pour faciliter la gestion de planning d'une équipe, je cherche à lier la base de données de leurs congés à la feuille planning de chaque semaine de travail.

peu importe le système, macro, formule, mise en forme.

un peu de précisions: dans un même classeur, j'ai mis une feuille qui regroupe tous les congés de l'année. ensuite j'ai une feuille de planning par semaine, donc 52 feuilles.

je cherche à ce que lorsque je vais sur une feuille de planning semaine, je vois toute de suite que pierre, paul ou jacques est en vacances. il y a des possibilités mais je cherche la plus simple et éfficace sans avoir des tonnes de saisies à faire sinon autant le faire dans chaque semaine directement.

merci d'avance

Bonjour,

Et le fichier joint ? Il est où le fichier joint ?

2 semaines suffiront avec des nom banalisés mais l'ensemble doit rester très fidèles à la disposition originale.

A+

je m'en doutais un peu pour le fichier joint, je le transmet dès que possible

ci joint le fichier que j'ai simplifié mais conforme à l'original

Bonjour,

Cela nécessite une macro qui ne peut-être mise au point que sur le fichier original.

Comme le fichier sera trop gros pour passer en pièce jointe, tu peux me l'envoyer zippé par mail.

Je te met mon adresse en MP.

A+

Bonjour,

Sub galopin()
Dim WsS As Worksheet, WsC As Worksheet
Dim i%, iRS%, iRC%, sem$, Tablo
Set WsS = Feuil3
On Error GoTo GESTERR
For i = 5 To 13 Step 8
 sem = WsS.Cells(3, i)
 If Val(sem) < 10 Then sem = "0" & sem
Set WsC = Worksheets(sem)
   For iRS = 7 To 44
      Tablo = WsS.Range(WsS.Cells(iRS, i - 1), WsS.Cells(iRS, i + 7))
      Tablo(1, 1) = WsS.Cells(iRS, 1)
      If Tablo(1, 8) + Tablo(1, 9) > 0 Then
         For iRC = 6 To 46
            If WsC.Cells(iRC, 1) = Tablo(1, 1) Then
            For k = 1 To 6
               WsC.Cells(iRC, 1 + k * 2) = UCase(Tablo(1, k + 1))
            Next
            End If
         Next
      End If
   Next
Next
Exit Sub
GESTERR:
MsgBox "Une erreur imprévue est survenue"
End Sub

Nota :

Comme le classeur est incomplet la macro ne traite que les semaines 23 et 24

Quand toutes les semaines seront installées modifier la ligne :

For i = 5 To 13 Step 8

en :

For i = 5 To 413 Step 8

Nota : Il est possible de remplacer toutes les macros Worksheet_Change par une macro unique !

A+

merci pour la macro cela fonctionne.

par contre celle ci peut elle fonctionner automatiquement et non être obliger de la lancer?

il faut copier la macro pour chaque feuille? ou tu me dis pouvoir la mettre unique?

tu auras compris que je suis novice dans la lecture et l'application des macros,

n'est elle pas un peu lourde car lors du lancement celle ci met un peu de temps à s'appliquer sur les 2 feuilles alors sur 52 !!

si tu as un peu de temps, j'aimerais bien que tu m'expliques le fonctionnement(lecture) de ta macro afin que je comprenne son focntionnement et "éventuellement" que je puisse la faire évoluer.

merci,

Bonsoir,

Désolé, hopital oblige, j'ai été un peu coupé du monde pendant une semaine, Je refais progressivement surface. Si ton besoin est toujours d'actualité, on va pouvoir affiner un peu.

En ce qui concerne ma macro, il n'y a pas besoin d'en faire une par feuille, tu fais juste les modifs que je t'ai indiqué et ça doit marcher. Après si tu veux qu'elle se lance toute seul, c'est également possible mais il s'agit de savoir à quel moment c'est le mieux. Et là, ça se discute non seulement par rapport à ton mode opératoire mais également par rapport au contenu de ton classeur.

J'ai besoin d'en savoir un peu plus sur la structure de ton classeur réel, car ton fichier démo fait état (de mémoire) de quelques 379 feuilles minimum dans ton classeur et ça c'est un peu perturbant. Donc j'ai besoin de connaitre le nombre de feuilles existant réellement dans ton classeur. Ces quelques 400 feuilles sont-elles le fantome d'anciennes feuilles des années précédentes qui ont été supprimées depuis ou existent-elles réellement ?

J'ai fait allusion à regrouper toutes les macros Worksheet_Change de toutes tes feuilles car avec un classeur comportant un aussi grand nombre de feuilles c'est presque indispensable.

Une macro unique ne prendra pas plus de temps à l'exécution que 52 macros identiques et soulagera grandement ton classeur dans son fonctionnement au quotidien.

Dans un premier temps -si tu es toujours sur le forum- on va s'occuper d'abord d'automatiser le report sur les feuilles de semaines, pour éviter de mélanger les sujets.

A+

oui je suis toujours là

je surveillai le post, content de voir ton retour et en pleine forme j'espère, vu ton indiquation d'un passage à la case hopital...

je ne sais pas pourquoi autant de feuille sur mon classeur

peut être effectivement, le fait de plusieurs copies.

pour mon classeur réel je te l'ai envoyé par mail, tu dois l'avoir non?

dis moi les informations que tu as besoin de savoir et je te transmet rapidement ça.

je regarde le post tous les jours

pour mon classeur réel je te l'ai envoyé par mail, tu dois l'avoir non ?

Oui effectivement. mais ce fichier ne fait que 4 feuilles. Puis-je considérer comme certain que les autres feuilles ont déjà été créées ?

Si ce n'est pas le cas ne le fais pas encore. Je commence à plancher sur une macro Worksheet_Change unique.

Il faut me dire sur quelle base on envisage le lancement de la macro de transfert. Il me semble que cette mise à jour pourrait se faire à chaque ouverture du classeur. Une autre possibilité serait une mise à jour au moment de la fermeture du classeur. A ce moment là en général on s'en fout si le classeur pédale un peu avant de se fermer et l'avantage est qu'on a des données à jour sans attendre au moment de l'ouverture. Une dernière possibilité serait de faire la mise à jour à chaque changement de la feuille congé cependant cela me semble un peu "inutilement lourd" (sachant qu'en cas de nécessité tu as toujours la possibilité d'effectuer le transfert manuellement via l'onglet développeur...)

Attention : Le transfert ne se fait que dans un sens : De la feuille congé vers les feuilles "semaines" En cas d'erreur ou de suppression il faudrait supprimer manuellement les données sur les feuilles semaines.

Par exemple CLERC A avait 4 jours de RECUP en Juin. Il tombe malade ou sa récup est déplacée pour d'autres convenances il faudra faire la suppression à la main sur la feuille semaine car le programme n'évalue que les données présentes pour les transférer il ne cherche pas à comparer si les données ont été modifiées entre temps... Ok ?

A+

le fichier ne fait que 4 feuilles car en fait j'ai tendance à les rajouter au fur et à mesure, car il arrive régulièrement que le personnel change et cela m'évitait de modifier sur toutes le feuilles à chaque fois.

je ne sais pas si c'est une bonne chose, je devrais peut être les mettre toutes un bonne fois et trouver un système simple pour modifier les changements, surtout que cela concerne principalement une certaine catégorie de personne(intérimaire).

pour le lancement de la macro, comme je vais vouloir visualiser l'impact des absences sur les semaines, je pense que le mieux est de mettre un bouton sur cette même feuille.

le fait d'avoir le choix de lancer ou non la macro me donnera une souplesse aussi si je fait un erreur ou si je change d'avis par exemple.

pour le principe de fonctionnement de la macro, "congés" vers "semaines" c'est parfait c'est ce qu'il me faut

Bonsoir,

J'ai remanié un peu ma macro pour tenir compte du fait que toutes les feuilles ne seront peut-être jamais présentes ensemble.

Je n'ai pas ajouté de bouton. Je suppose que tu sais faire !

J'ai également viré toutes les Worksheet_Change qui sont réunies en une seule dans le module ThisWorkbook ce qui fera un gain en volume non négligeable si toutes les feuilles sont présentes.

Tu remarqueras également que j'ai déplacé l'instruction Worksheet.Activate dans une macro Workbook_BeforeClose car la plupart du temps ça beuguait dans la WorkBook_Open

J'ai rajouté une Fonction WsExist (indispensable) et destinée à tester la présence ou non d'une feuille de semaine.

j'ai rajouté également une petite macro NewSh destinée à créer rapidement une feuille de semaine par duplication de la semaine précédente:

Pour créer la Feuille "25" il est nécessaire que tu actives d'abord sur la feuille "24" avant de lancer la macro NewSh via le ruban Onglet Développeur>Macros...

De même pour créer la feuille "03" tu dois activer d'abord sur la feuille "02"

Pour créer des feuilles "en rafale" c'est très simple : Un fois crée la Feuil "24" de la manière indiquée, Tu fais aussitôt après Ctrl + Y et cela autant de fois que tu veux de feuilles successives. Idem pour les semaines 4 à 22 : Tu commences par la "3" et hop ! Une petite rafale de Ctrl + Y et tes 52 semaines sont prêtes en moins d'une minute...

Il s'ensuit de ce que je viens d'expliquer qu'il nest pas possible de créer directement la feuille "44" par exemple. Si tu tiens absoluement à créer la feuille "44" (et seulement cette feuille) Il faut commencer par créer la 24 et la renommer en 44 ensuite...

Particulièrement signalé :

En effet tu remarqueras dans la fenêtre VBAProject que les feuilles ainsi créées ne sont plus baptisées Feuil379 (24) par exemple mais Sh24 (24). Ce dispositif est essentiel pour le bon fonctionnement de l'ensemble.

Toutefois si tu procèdes comme indiqué pour la feuille "44" la continuité de la numérotation ne sera pas assuré et dans VBA Project ta Feuille 44 s'appellera Sh24 (44) et ça foutra un peu la pagaille. ça n'empêchera pas le prog de fonctionner, mébon, il n'est jamais bon dès qu'on commence à toucher à VBA de laisser subsister de telles aberrations. Je te conseille donc de procéder en suivant la continuité des numéros : inutile de se compliquer la vie.

Et si malgré tout tu tiens à explorer des chemins nouveaux, tu pourras toujours renommer ta Sh24 (44) en Sh44 (44) dans la fenêtre des propriétés de VBA...

Vala j'ai fait un peu le tour de la question. Si tu en as d'autres... YAKA demander !

A+

[EDIT] Fichier supprimé à la demande de l'interressé.

salut

je regarde ça de prêt mais ça m'a l'air pas mal du tout ainsi que la duplication des feuilles

le transfert des fichiers peux tu faire ça en MP ou par mail, je prefere que mettre l'original sur le forum 8)

merci beau boulot

Bonsoir,

Désolé c'est vrai que j'étais à coté de mes pompes... j'ai donc supprimé le fichier.

A+

Rechercher des sujets similaires à "gestion info planning conge travail"