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
 

Fichiers joints

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
 

Fichiers joints

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.
 

Fichiers joints

sousou

XLDnaute Barbatruc
Bonjour
J ai bien vue lq ligne vide, mzid il me semble que cela ne change pas le tcd
Pour le reste pas dispo pour le moment mais je me penche dessus
 

sousou

XLDnaute Barbatruc
RE
Voilà quelques modifs.
Pour le problème du salarié, je n'ai pas trouvé autre choses que de sélectionner (vide) dans le segment en plus du salarié!
 

Fichiers joints

silverscreen

XLDnaute Nouveau
Merci beaucoup sousou!

Vous avez réglés beaucoup de problèmes! Je vais me pencher de mon côté sur la question de la selection du salarié et si j'ai une idée, je me permettrais de revenir vers vous.

En attendant, je vous souhaite une très bonne journée!
 

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é;)
 

Fichiers joints

Dernière édition:

silverscreen

XLDnaute Nouveau
j'ai pris le code et je l'ai mis dans le tableau précédent.
Je pense qu'on va s’arrêter là, parce que sinon, je demanderai encore plein de choses :D

Un grand merci à tous le monde (et encore plus à sousou! ;))
 

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!
 

Fichiers joints

sousou

XLDnaute Barbatruc
bonjour
dans chercheaction, modifie cette ligne comme ceci,
dateact = CDate(act.Value & "/" & act.Offset(0, 1) & "/" & Year(act.Offset(0, 5)))
D'autres part avec les données présentes dans ton fichier, je regarde si je trouve une solution pour accélerer les choses, (je me doutais que ce serait long...)
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas