XL 2016 Gestion des dates projets

babooche

XLDnaute Nouveau
Bonjour à tous,

Je souhaite mettre en place un fichier de suivi de mess projets pro afin de rassembler sur un même doc l'avancement et les deadlines de tous mes projets.

Pour ce faire, j'ai pensé à un fichier en 2 onglets.
* Le premier (TB_Suivi) est un tableau avec en première colonne le nom du projet (ici Etude 1 et Etude 2 pour l'exemple) et plusieurs autres colonnes avec des infos sur les projets.
(Pour simplifier la lecture, je n'ai laissé que les colonnes ayant un rapport avec le second onglet)

* Le second est un "plan de charge". En colonne A, j'ai utilisée une formule pour avoir tous les jours ouvrés (weekend et férié enlevés). La colonne B correspond au projet 1 (Etude 1), la colonne C au projet 2 (Etude 2)...
L'idée étant que pour chaque projet (chaque colonne), les différentes périodes du dit projet soient mis en évidence. Pour exemple, j'ai fait la mise en évidence de "Etude 1" à la main et quelque chose de similaire mais avec des formules pour les autres projets.

Au final, j'aimerai pouvoir compléter l'onglet 1 (TB_Suivi) et voir mon onglet 2 (Plan de charge) se mettre à jour automatiquement sans que j'ai besoin de le faire à la main. j'ai essayé de le faire avec la formule SOMMEPROD. Cela marche pour un remplissage mais pas pour tout.

D'avance merci pour ceux qui prendront un peu de temps pour m'aider.

Babooche
 

Pièces jointes

  • Fichier suivi2.xlsx
    28.3 KB · Affichages: 100

vgendron

XLDnaute Barbatruc
Salut

un essai par macro
suffit de cliquer sur le bouton
2 points seront sans doute à modifier
1) la formule pour créer les jours colonne A de ton plan de charge disparait pendant le traitement==> je peux la remettre
2) lorsque la date de livraison tombe PENDANT la période "APRES"... ??
 

Pièces jointes

  • Fichier suivi2.xlsm
    34.4 KB · Affichages: 37

babooche

XLDnaute Nouveau
Bonjour,
Désolé de ma réponse tardive. Je suis parti en weekend et j'ai décidé de ne plus penser au taff sur cette période.
J'ai pu regarder et ça marche très bien. Un grand merci à toi pour le temps passé.

N'y reconnaissant pas grand chose sur les macros, j'ai 2-3 petites questions qui me viennent.
Si je rajoute dans la feuille TB_Suivi des colonnes à la suite (pour mettre d'autre informations) est ce que cela va poser problème ?
Il y a deux feuilles nommée plan de charge. Est ce que je dois garder les deux? Ou est ce que je peux n'en garder qu'une?
 
Dernière édition:

vgendron

XLDnaute Barbatruc
Salut

Pour répondre à tes questions
si tu ajoutes des colonnes dans le tableau TB_suivi: pas de problème pour la macro à condition que tu les ajoutes tout à droite.. sinon, il faudra ajuster les indices dans la macro.
la feuille "Plan de charge(2)" peut etre supprimée. je la gardais juste pour avoir de quoi comparer avec le résultat de la macro
 

babooche

XLDnaute Nouveau
Merci pour ces précisions.
J'ai rajouté une colonne a gauche. J'ai changé les indices donc c'est bon ça marche toujours.
En revanche j'ai essayé de rajouté une ligne à la macros pour que cela m'affiche la date prévue et la date effective de livraison. (rajout en rouge)
Et comme je m'en doutais, il y a un truc que je n'ai pas compris puisque ça ne marche pas :)


Sub PlandeCharge()
Dim TabSuivi() As Variant
Dim TabPdC() As Variant
With Sheets("TB_Suivi")
TabSuivi = .Range("Tableau2").Value
End With
With Sheets("Plan de charge")
FinFeuille = .Range("A" & .Rows.Count).End(xlUp).Row
.UsedRange.Offset(1, 1).ClearContents
TabPdC = .Range("A2").Resize(FinFeuille, UBound(TabSuivi, 1) + 1).Value
End With
For i = LBound(TabSuivi, 1) To UBound(TabSuivi, 1) 'pour chaque ligne = pour chaque projet
Etude = TabSuivi(i, 1)
Livraison = TabSuivi(i, 3)
DateLivraison = TabSuivi(i, 4)
Debut = TabSuivi(i, 6)
Fin = TabSuivi(i, 7)
AvantProjet = TabSuivi(i, 8)
AprèsProjet = TabSuivi(i, 10)
For j = LBound(TabPdC, 1) To UBound(TabPdC, 1)
If TabPdC(j, 1) >= Debut And TabPdC(j, 1) <= Fin Then 'pendant la campagne
TabPdC(j, 1 + i) = "Campagne"
End If

If TabPdC(j, 1) < Debut And TabPdC(j, 1) >= Debut - 7 * AvantProjet Then TabPdC(j, i + 1) = "Avant"
If TabPdC(j, 1) > Fin And TabPdC(j, 1) <= Fin + 7 * AprèsProjet Then TabPdC(j, i + 1) = "Après"
If TabPdC(j, 1) = DateLivraison Then TabPdC(j, 1 + i) = "Livraison prévue"
If TabPdC(j, 1) = Livraison Then TabPdC(j, 1 + i) = "Livrée"
Next j
Next i
With Sheets("Plan de charge")
.Range("A2").Resize(UBound(TabPdC, 1), UBound(TabPdC, 2)) = TabPdC
formule = "=SERIE.JOUR.OUVRE(A2;1;Fériés!$D$6:$D$17)"
.Range("A3").FormulaLocal = formule
.Range("A3:A" & FinFeuille).FillDown
End With
End Sub
 

Discussions similaires

Réponses
2
Affichages
259
Réponses
4
Affichages
280