Re : Planning - Diagramme de Gantt
Bonjour le Forum!
J'aimerais avoir des explications au pas à pas, si possible afin de bien comprendre le langage Vba dans ce fichier.
Private Sub Worksheet_Activate()
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
End Sub
Private Sub Worksheet_Calculate()
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
Private Sub Worksheet_Deactivate()
End Sub
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
End Sub
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
Et ensuite le plus important le langage dans le module:
' Planning limité à 999 lignes
' Période de prise en considération : janvier 2009 - décembre 2014
'Macro de nettoyage des données
Sub Nettoyer()
Sheets("Planning CPER HN").Range("E6:BX999").Interior.ColorIndex = xiNone
Range("A5").Select
End Sub
'Macro de traitement des données
Sub Dessine()
Sheets("Planning CPER HN").Select
Call Nettoyer
Ligne = 7
'Non limitation du nombre de lignes
While Cells(Ligne - 1, 1) <> ""
'Définition des variables Début et Fin
DateDeb = Cells(Ligne - 1, 3).Value
DateFin = Cells(Ligne - 1, 4).Value
MoisDeb = Month(DateDeb) + 4
MoisFin = Month(DateFin) + 4
AnDeb = Year(DateDeb)
AnFin = Year(DateFin)
If AnDeb = "2010" Then MoisDeb = MoisDeb + 12
If AnDeb = "2011" Then MoisDeb = MoisDeb + 24
If AnDeb = "2012" Then MoisDeb = MoisDeb + 36
If AnDeb = "2013" Then MoisDeb = MoisDeb + 48
If AnDeb = "2014" Then MoisDeb = MoisDeb + 60
If AnFin = "2010" Then MoisFin = MoisFin + 12
If AnFin = "2011" Then MoisFin = MoisFin + 24
If AnFin = "2012" Then MoisFin = MoisFin + 36
If AnFin = "2013" Then MoisFin = MoisFin + 48
If AnFin = "2014" Then MoisFin = MoisFin + 60
' Codification couleur
If Cells(Ligne - 1, 2) = "Bleu" Then Couleur = 5
If Cells(Ligne - 1, 2) = "Rouge" Then Couleur = 3
If Cells(Ligne - 1, 2) = "Jaune" Then Couleur = 6
If Cells(Ligne - 1, 2) = "Bleu Foncé" Then Couleur = 11
If Cells(Ligne - 1, 2) = "Rose" Then Couleur = 7
'Incrémentation des colonnes
For Z = MoisDeb To MoisFin
With Cells(Ligne, Z)
.Interior.ColorIndex = Couleur
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
End With
Next Z
'Incrémentation des lignes
Ligne = Ligne + 3
Wend
'Repositionnement début planning
Range("A5").Select
End Sub
En vous remerciant pour votre patience et votre disponibilité!
Bonne journée!
Ps: J'apprend le Vba petit à petit, alors soyez indulgent avec moi s'il vous palit!😱