XL 2016 GANTT simple en heure

ifi77

XLDnaute Occasionnel
Bonjour à tous,

Après de nombreux visionnage de création de GANTT, je n'arrive pas à trouver ce que j'ai besoin.
Mon problème est simple, je souhaite, dans un premier temps, simplement mettre en couleur la plage de temps correspond à la "tache" selon sa nature (modification de la couleur). Petit plus, je souhaiterais que la descrition apparaisse dans la plage créée (si possible).
Je verrais par la suite à créer utiliser le principe des antécédents.
Je vous joins mon fichier.

D'avance merci.
 

Pièces jointes

  • GANTT PERSO.xlsx
    20.3 KB · Affichages: 8

job75

XLDnaute Barbatruc
Bonjour ifi77, le forum,

Pour colorer en jaune les tâches, formule de la MFC sur les lignes 12 à 28 :
Code:
=ET(COLONNE()>=EQUIV(ENT($E12);$9:$9;0)+ENT(48*MOD($E12;1))+1;COLONNE()<=EQUIV(ENT($F12);$9:$9;0)+ENT(48*MOD($F12;1))+1)
A+
 

Pièces jointes

  • GANTT PERSO.xlsx
    20.5 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Ifi, Job,
Une autre approche :
1- En ligne 11 reconstituer date/heure avec :
VB:
=H10+INDEX(9:9;8+48*ENT((COLONNE()-8)/(56-8)))
en bleu sur fond bleu pour être invisible.
2- En $H$12:$XG$44 la MFC :
Code:
=ET($B12="Nom de la tache";H$11>=$E12;H$11<=$F12)
Je n'en ai mis que 4 : Tache A, Tache B, Ordre et Jalon. Il suffit de compléter avec l'ensemble des taches.
 

Pièces jointes

  • GANTT PERSO.xlsx
    79.9 KB · Affichages: 0

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Encore plus simple, les formules en ligne bleue sont inutiles:
- En H10 : =H9, puis de I10 à la fin : =H10+"00:30", avec format cellules "hh:mm"
et modifier les MFC en conséquence.

Pour le second point, une astuce, il suffit de partager l'écran avec des volets.
Ainsi La tache est toujours apparente à gauche de l'écran.
 

Pièces jointes

  • GANTT PERSO V2.xlsx
    75 KB · Affichages: 6

ifi77

XLDnaute Occasionnel
Bonjour à tous, un grand merci.
J'ai pu adapter vos réponses à mes besoins.
J'aurais une autre question, dans le tableau ci joint, je souhaiterais que la description en colonne D soit copiée dans la zone coloriée. J'ai bien pris en compte l'astuce du volet mais cela ne va pas avec mes besoins ultérieurs.
Encore merci pour votre aide.
 

Pièces jointes

  • GANTT PERSO V3.xlsx
    618.1 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Perso, je ne sais pas faire hors VBA.
En formules, elles se répètent et cela devient illisible avec en H12 et la suite :
VB:
=SI(ET(H$10>=$E12;H$10<=$F12);$C12;"")
Cela donne par ex :
1728942357261.png

Sorry,
 

ifi77

XLDnaute Occasionnel
Merci Sylvanu, pour avoir tourner pendant un certain temps, je me doutais qu'il serait difficile de le faire sans VBA.
Je vais donc ajouter du code mais si la recherche de la première cellule non coloriée par ligne devrait pourvoir être dans mes cordes, par quel moyen passeriez vous?
> pour chaque ligne du tableau: si une case est colorié alors copier sur la première cellule la descrition de la colonne D?
Ou partireriez vous de la colonne D, à savoir > si la cellule de la colonne D n'est pas vide, alors je recherche la première cellule colorée de la ligne? Sur cette proposition, je risque d'être bloqué avec les séprations fusionnées entre blocs?
Enfin, j'ai verouillé la feuille pour éviter une fausse manipulation. Il me faut donc dévérouiller et revérouiller.
Si vous avez un avis, je suis preneur.

Encore un grand merci pour cette entraide!
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Un essai en PJ avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [A12:F1000]) Is Nothing Then
        Dim L%, C%, Tablo, Debut
         Application.ScreenUpdating = False
         L = Target.Row
         If Cells(L, "E") <> "" And Cells(L, "F") <> "" Then    ' On bosse uniquement si E et F sont remplies
            Range(Cells(L, "H"), Cells(L, "XG")).ClearContents  ' On efface la ligne
            Debut = Cells(L, "E")
            Tablo = Range("A10:XG10")                           ' Horaire dans tableau plus rapide
            Application.EnableEvents = False
            For C = 8 To 631                                    ' De H à XG
                If Abs(Tablo(1, C) - Debut) < "00:10:00" Then   ' Si case heure = heure début
                    Cells(L, C) = Cells(L, "D")                 ' On met la tache
                    Exit For
                End If
            Next C
         End If
    End If
Fin:
Application.EnableEvents = True
End Sub
J'ai gardé les MFC, la macro ne sert qu'à insérer le commentaire.
Petit souci, il est difficile de rendre le commentaire toujours lisible.
( dans la PJ j'ai modifié la couleur du texte en jaune sur fond rouge pour exemple )

1728982291317.png
 

Pièces jointes

  • GANTT PERSO V4.xlsm
    368.1 KB · Affichages: 3

ifi77

XLDnaute Occasionnel
Encore un grand merci! du coup je vais faire une petite ligne de code pour mettre les jalons car le fait d'insérer les descriptions dans le tableau a supprimé les formules contenues dans les cellules.
Excellente journée et merci encore
 

Discussions similaires

  • Question
Microsoft 365 Tableau
Réponses
24
Affichages
717

Statistiques des forums

Discussions
314 708
Messages
2 112 097
Membres
111 416
dernier inscrit
philipperoy83