XL 2013 Planning des tâches et TCD

silverscreen

XLDnaute Nouveau
Bonjour à tous.

Après avoir souvent trouvé des réponses à mes questions sur ce forum, je viens de m'inscrire parce que je sèche complètement.

Je vous fais un petit historique:
Le service administratif de notre entreprise de paysage m'avait demandé d'automatiser leur planning des tâches à faire sur l'année, mois par mois.
J'ai réussi à le faire en utilisant une combinaison de [Tableau] + TCD que j'aime beaucoup car on peu utiliser les segments et actualiser facilement.
Je vous joint le fichier pour exemple.

Maintenant, le service Qualité Sécurité Environnement voudrait également son planning, mais amélioré: ils voudraient en effet avoir un planning annuel, mais par jour!

il faudrait donc que mon TCD affiche tous les mois ainsi que tous les jours de chaque mois (et pas que ceux ayant une tâche).
Je vous joins la base du fichier commencé (même s'il n'y a pas grand chose).

Je désespère de trouver une réponse, ça fait des jours que je tourne le problème dans tous les sens...

Je vous remercie par avance de votre aide!

Bonne journée
 

Pièces jointes

  • TEST Planning MENSUEL.xlsm
    59.6 KB · Affichages: 32
  • TEST Planning QSE - Copie.xlsm
    340.9 KB · Affichages: 17

sousou

XLDnaute Barbatruc
Bonjour,
Je te propose ce code qui reconstruit les données dans la feuil1 tu peux ainsi refaire tes tdc
J'ai règlé le problème de l'année de manière arbitraire, celle-ci n'existant pas dans tes données
A adapter et à voir si celasuffit

Public tfbd, n
Sub calendrier()
Sheets("feuil1").UsedRange.Delete
Set tfbd = Sheets("saisie (2)").ListObjects("tableau42")
rep = InputBox("année?", "Année", Year(Date))
datedeb = CDate("1/1/" & rep)
datefin = CDate("31/12/" & rep)
n = 1
For madate = datedeb To datefin Step 1
Sheets("feuil1").Cells(n, 1) = madate
Call chercheaction(madate)
n = n + 1

Next
Sheets("feuil1").UsedRange.Sort key1:=Sheets("feuil1").Columns(1)
End Sub
Sub chercheaction(d)

For Each act In tfbd.ListColumns("jour").DataBodyRange
If act <> "" Then
dateact = CDate(act.Value & "/" & act.Offset(0, 1) & "/" & Year(Date))
If dateact = d Then
Call copieact(d, act)
End If
End If
Next
End Sub

Sub copieact(d, act)
With Sheets("feuil1")
.Cells(n, 1) = d
tfbd.ListRows(2).Range.Copy
.Cells(n, 2).PasteSpecial (xlPasteValues)
n = n + 1


End With
End Sub
 

silverscreen

XLDnaute Nouveau
Bonjour à sousou et tatiak et tout d'abord, merci pour vos réponses.

A tatiak, votre planning est bien fait mais ne me correspond pas car je serais incapable de le modifier et le remodeler pour répondre à mes besoins. En effet, n'y comprenant pas grand chose en VBA, je cherche une solution utilisant l'outil Tableau et TCD qui permettent une grande souplesse dans les tris, filtres etc... En plus, je les utilisent souvent dans le cadre de mon travail et cela me permettra de progresser.

Pour sousou, j'ai testé le code, mais cela ne correspond pas trop à mes attentes (mais je n'ai surement pas bien expliqué).

En gros, j'aimerais que cela ressemble à l'image ci-dessous. Que tous les mois et les jours apparaissent et que lorsqu'une tâche doit durer 7 jours, elle soit colorée sur toute la durée.

1573131142884.png


Est-il possible de trouver une solution n'utilisant que des [Tableaux] et sans VBA?

Je vous remercie encore pour voter aide!
 

sousou

XLDnaute Barbatruc
Je persiste;)
Regarde de nouveau avec le tcd et la macro
Pour le TCD je crois que tu as les infos qui vont bien, mais je suis nul sur sa mise en forme
Je pense que c'est une piste à suivre sauf si quelq'un à une meilleur idée
 

Pièces jointes

  • Planning QSE.xlsm
    55.8 KB · Affichages: 18

silverscreen

XLDnaute Nouveau
je regarderais mardi parce que je suis en week end ce soir (la chance je sais)
ce que j'avais vu avec la macro cet après midi, c'est que ça sortait une "liste" mais pas sous forme de tableau et que donc le TCD ne pouvait pas être mis à jour.
j'ai un peu avancé aujourd'hui en faisant un tableau "date" du 01/01/2019 jusqu'au 31/12/19 avec les mois dans une autre colonne. j'ai fait une liaison entre "mois" de ce tableau avec"mois" du tableau de saisi.
j'ai ainsi pu obtenir un TCD avec tous les mois et tous les jours affichés.
Par contre je bloque toujours sur la façon d'afficher une barre sur plusieurs jours d'affilés...

Je reviens Mardi, mais si d'autres solutions apparaissent, je suis preneur.

Bonne soirée et bon week end!
 

silverscreen

XLDnaute Nouveau
Bonjour.

J'ai fait le test du fichier ce matin (avec 1 ou 2 petites modifications) et ça prend forme, merci sousou.
Cependant, j'ai toujours quelques petits problèmes:

- lorsque la macro recopie les données, on se retrouve avec des lignes sans n° de jour et cela apparaît comme (vide) dans le calendrier
1573552434053.png


- lorsque je veux sélectionner qu'un seul salarié, la chronologie des jours disparaît pour ne laisser apparaître que les jours avec une action
1573552567780.png


et dernier détail, serait-il possible de faire apparaître les mois en majuscule?

Merci d'avance pour l'aide.
 

Pièces jointes

  • Planning QSE essai 3.xlsm
    50.1 KB · Affichages: 9

sousou

XLDnaute Barbatruc
A tester, j'ai conservé l'ancienne version, mais ajouter un nouveau module, t'as le choix!
cette nouvelle version se base sur la construction d'un tableau 365 lignes X par chaque salarié,
Cela semble une réponse à ta problèmatique, peut-être lourd si tu as10000 salarié;)
 

Pièces jointes

  • Planning QSE.xlsm
    71 KB · Affichages: 7
Dernière édition:

silverscreen

XLDnaute Nouveau
Re bonjour!

Je ne pensais pas devoir revenir, mais sousou, je vais avoir encore besoin d'aide...
En effet, lorsque je saisi la date "2020", rien ne se copie...

Je vous transmets mon nouveau fichier pour que vous regardiez ce qui cloche :)

D'avance, je vous remercie!
 

Pièces jointes

  • Planning QSE 2019 ESSAI 5.xlsm
    105.6 KB · Affichages: 7

Discussions similaires

Réponses
14
Affichages
712
Réponses
9
Affichages
359

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 810
dernier inscrit
mohammedaminelahbali