Sub OngletSprints()
'
' Affichage de l'onglet Sprints
'
'On Error GoTo errHandler
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayStatusBar = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
Dim NoSprint As Integer 'Numéro du sprint
Dim LS As Integer 'Numéro de la ligne dans l'onglet Sprint, où nous insérons
Dim LR As Integer 'Numéro de la ligne dans l'onglet Récits utilisateur, où nous lisons
Dim THEME As String 'le nom du Theme et Epics pour le récit
Dim LigneDebutSprint As Integer '# de rangée du début d'un sprint
Dim LigneFinSprint As Integer '# de rangée de la fin d'un sprint
Dim RecitDone
Dim Detail As String
Dim BoucleRecit
Dim LastRow As Integer
Dim xComment As Comment
Dim PointsPlanifies As Integer
Dim LigneEnteteSprint As Integer
Dim Livraison As String
Dim NbreDeRecits As Integer
Dim LigneDeDebut As Integer
LigneDeDebut = 646 'On veut refaire l'onglet à partir de cette ligne seulement (Début Sprint #20)pour éviter que la macro soit trop long à exécuter
Dim LignesASupprimer
LignesASupprimer = LigneDeDebut & ":5000"
Dim LigneDebutRecit As Integer
LigneDebutRecit = 575 'On commence à 575 puisque c'est là que débute les récits de la LMG
Dim LignesACacher
NbreDeRecits = Sheets("Récits Utilisateurs").Range("B" & Rows.Count).End(xlUp).Row
Sheets("Sprints").Unprotect
'Sheets("Sprints").Cells.Delete 'On efface tout le contenu de la feuille
Sheets("Sprints").Rows(LignesASupprimer).Delete 'On efface les lignes qui suivent cette ligne
'On ne fait plus cette partie puisqu'on garde les premières lignes du de la livraison #1 intactes
'On enlève tous les groupes de colonnes
Sheets("Sprints").Columns("A:Z").Select
Selection.Ungroup
Sheets("Sprints").Cells.VerticalAlignment = xlCenter
LS = 1
Sheets("Sprints").Rows.Font.Size = 8
Sheets("Sprints").Rows.RowHeight = 12
NoColoneEntete = 1
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 1
NoColoneEntete = NoColoneEntete + 1
'Colonne B 2 (Épic)
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 10
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 1
NoColoneEntete = NoColoneEntete + 1
' Colonne C 3 (Récits utilisateurs)
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 90
Sheets("Sprints").Columns(NoColoneEntete).WrapText = True
' Colonne D 4 (# TFS)
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "#" & Chr(10) & "TFS"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 5
Sheets("Sprints").Columns(NoColoneEntete).HorizontalAlignment = xlCenter
' Colonne E 5 (Pts)
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Pts"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 3
' Colonne F 6 (Équipe)
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Éq."
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 3
Sheets("Sprints").Columns(NoColoneEntete).HorizontalAlignment = xlCenter
' Colonne G 7 (Analyste Fonctionnel)
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "A.F."
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 7
' Colonne H 8 (Date Kick-off)
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Kick" & Chr(10) & "-Off"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 6
Sheets("Sprints").Columns(NoColoneEntete).HorizontalAlignment = xlCenter
Sheets("Sprints").Range(Cells(LS + 1, NoColoneEntete), Cells(LS + 5000, NoColoneEntete)).NumberFormat = "d-mmm"
' Colonne I 9 (Avancement Architecture Fonctionnel)
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Arc" & Chr(10) & "Fon"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 5
Sheets("Sprints").Range(Cells(LS + 1, NoColoneEntete), Cells(LS + 5000, NoColoneEntete)).Style = "Percent"
' Colonne J 10 (Avancement Architecture Organique)
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Arc" & Chr(10) & "Org"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 5
Sheets("Sprints").Range(Cells(LS + 1, NoColoneEntete), Cells(LS + 5000, NoColoneEntete)).Style = "Percent"
' Colonne K 11 (Statut du récit - TI)
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Statut" & Chr(10) & "TI"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 8
Sheets("Sprints").Columns(NoColoneEntete).HorizontalAlignment = xlCenter
'On fait un groupe avec les colonnes "TI" (5 à 11)
Sheets("Sprints").Columns("E:K").Select
Selection.Group
'Colonne L 12 Statut Aff.
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "%" & Chr(10) & "Aff."
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 4
Sheets("Sprints").Columns(NoColoneEntete).HorizontalAlignment = xlCenter
Sheets("Sprints").Range(Cells(LS + 1, NoColoneEntete), Cells(LS + 5000, NoColoneEntete)).Style = "Percent"
'Colonne M 13 Livrable Aff.
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Livrable Affaire"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 22
Sheets("Sprints").Columns(NoColoneEntete).WrapText = True
'Colonne N 14 Resp. Aff.
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Resp." & Chr(10) & "Aff."
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 7
Sheets("Sprints").Columns(NoColoneEntete).HorizontalAlignment = xlCenter
Sheets("Sprints").Columns(NoColoneEntete).WrapText = True
'Colonne O 15 Type
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Type"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 6
'Colonne P 16 Commentaire
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Commentaires"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 36
Sheets("Sprints").Columns(NoColoneEntete).WrapText = True
'On fait un groupe avec les colonnes "Affaire" (M, N, O, P)
Sheets("Sprints").Columns("M:P").Select
Selection.Group
' Colonne Q 17 (Pilote)
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Pilote"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 11
' Colonne R 18 (Statut de la rédaction des cas d'essais)
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Cas" & Chr(10) & "Essais"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 8
'Colonnes S à X 19 à 24 (Listes des Dossiers fonctionnels)
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Dossier #1"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 24
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Dossier #2"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 24
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Dossier #3"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 24
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Dossier #4"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 24
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Dossier #5"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 24
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Dossier #6"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 13
'On fait un groupe avec les colonnes "Pilotage" (R à X)
Sheets("Sprints").Columns("R:X").Select
Selection.Group
' Colonne Y 25 (# de la livraison)
NoColoneEntete = NoColoneEntete + 1
Sheets("Sprints").Cells(LS, NoColoneEntete).Value = "Liv"
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Bold = True
Sheets("Sprints").Cells(LS, NoColoneEntete).Font.Size = 14
Sheets("Sprints").Columns(NoColoneEntete).ColumnWidth = 4
Sheets("Sprints").Rows(LS).RowHeight = 34
LS = LS + 1
'Pour débuter au sprint 20
LS = LigneDeDebut
'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Dim ws As Range
Set ws = Sheets("Sprints").Cells ' Faire une copie de la Worksheet Sprints dans ws
Dim wru As Range
Set wru = Sheets("Récits Utilisateurs").Cells ' Faire une copie de la Worksheet Récits Utilisateurs dans wru
Dim i As Integer
For NoSprint = 20 To 30
ws.Cells(LS, 1).Value = "Sprint " & NoSprint & " - Capacité: " & Sheets("DomaineDeValeur").Cells(NoSprint + 1, 9) & "Pts"
'Mettre en forme, l'en-tête de Sprint
ws.Rows(LS).RowHeight = 26
ws(LS, 1).Font.Bold = True
ws(LS, 1).Font.Size = 20
ws.Parent.Range(Cells(LS, 1), Cells(LS, 25)).Interior.Color = RGB(125, 215, 255)
ws.Parent.Range(Cells(LS, 1), Cells(LS, 25)).Borders(xlEdgeBottom).LineStyle = xlContinuous
ws.Parent.Range(Cells(LS, 1), Cells(LS, 25)).Borders(xlEdgeTop).LineStyle = xlContinuous
PointsPlanifies = 0
LigneEnteteSprint = LS
LS = LS + 1
RecitDone = 1
' On retient le # de rangé du début du sprint (on s'en servira plus tard pour faire un grouping de rangés
LigneDebutSprint = LS
' Lire les récits utilisateurs
For LR = LigneDebutRecit To NbreDeRecits
If wru.Cells(LR, 5).Value = NoSprint And Len(wru.Cells(LR, 3).Value) > 1 Then
'On a trouvé un récit pour ce sprint
'On vérifie d'abord si c'est le premier récit de ce Thème/Épics
If THEME <> wru.Cells(LR, 22).Value Then
'C'est un nouveau récit pour ce Thème/Epic, alors on mets un en-tête
THEME = wru.Cells(LR, 22).Value
ws.Cells(LS, 2).Value = THEME
ws.Range(Cells(LS, 1), Cells(LS, 25)).Interior.Color = RGB(250, 191, 143)
ws.Rows(LS).Font.Bold = True
LS = LS + 1
End If
PointsPlanifies = PointsPlanifies + wru.Cells(LR, 7).Value
'Ensuite on insère le récit utilisateur
ws(LS, 3).Value = wru(LR, 3).Value ' Le titre du récit à insérer
ws(LS, 4).Value = wru(LR, 6).Value ' Le numéro de référence dans TFS pour le récit
ws(LS, 5).Value = wru(LR, 7).Value ' Le nbre de points du récit à insérer
ws(LS, 6).Value = wru(LR, 8).Value ' Equipe
ws(LS, 7).Value = wru(LR, 9).Value ' Analyste
ws(LS, 8).Value = wru(LR, 10).Value ' Date Kick-Off
ws(LS, 9).Value = wru(LR, 11).Value ' Avancement Arch.Fonc.
ws(LS, 10).Value = wru(LR, 12).Value ' Avancement Arch.Org.
ws(LS, 11).Value = wru(LR, 13).Value ' Le statut TI du récit
ws(LS, 12).Value = wru(LR, 14).Value ' Statut Aff.
ws(LS, 13).Value = wru(LR, 15).Value ' Livrable affaire
ws(LS, 14).Value = wru(LR, 16).Value ' Responsable
ws(LS, 15).Value = wru(LR, 17).Value ' Type
ws(LS, 16).Value = wru(LR, 18).Value ' Commentaire
For i = 1 To wru(LR, 18).Characters.Count
ws(LS, 16).Characters(i, 1).Font.Bold = wru(LR, 18).Characters(i, 1).Font.Bold
ws(LS, 16).Characters(i, 1).Font.Color = wru(LR, 18).Characters(i, 1).Font.Color
Next i
ws(LS, 17).Value = wru(LR, 19).Value ' Pilote
ws(LS, 18).Value = wru(LR, 20).Value ' CasDessai
ws(LS, 19).Value = wru(LR, 23).Value ' Dossier1
ws(LS, 20).Value = wru(LR, 24).Value ' Dossier2
ws(LS, 21).Value = wru(LR, 25).Value ' Dossier3
ws(LS, 22).Value = wru(LR, 26).Value ' Dossier4
ws(LS, 23).Value = wru(LR, 27).Value ' Dossier5
ws(LS, 24).Value = wru(LR, 28).Value ' Dossier6
ws(LS, 25).Value = wru(LR, 4).Value ' Livraison
ws.Rows(LS).AutoFit
If ws(LS, 11).Value = "Terminé TI" Then
ws.Range(Cells(LS, 1), Cells(LS, 25)).Interior.Color = RGB(192, 192, 192)
End If
If wru.Cells(LR, 13).Value <> "Terminé" And wru.Cells(LR, 13).Value <> "Terminé TI" Then
RecitDone = 0
End If
LS = LS + 1
End If
Next
'On fait un group avec toutes les rangés d'un sprint si on a au moins une rangé
If LigneDebutSprint <> LS Then
LigneFinSprint = LS - 1
ws.Range(Cells(LigneDebutSprint, 1), Cells(LigneFinSprint, 1)).EntireRow.Select
Selection.Group
'On collapse le group si tous les récits sont terminés
If RecitDone = 1 Then
' ws.Outline.ShowLevels RowLevels:=1
ws.Rows(LigneDebutSprint).ShowDetail = False
' On cache les rangées si le sprint fait partie d'une livraison terminée
If LigneDebutSprint < LigneDeDebut Then
LignesACacher = LigneDebutSprint & ":" & LigneFinSprint
ws.Rows(LignesACacher).EntireRow.Hidden = True
End If
End If
End If
If RecitDone = 1 Then
ws.Cells(LigneEnteteSprint, 1).Value = "Sprint " & NoSprint & " - Capacité: " & Sheets("DomaineDeValeur").Cells(NoSprint + 1, 9) & "Pts" & " vs Pts réalisés: " & PointsPlanifies & " / Dates: " & Format(Sheets("DomaineDeValeur").Cells(NoSprint + 1, 8), "yyyy/mm/dd") & " - " & Format(Sheets("DomaineDeValeur").Cells(NoSprint + 1, 10), "yyyy/mm/dd")
Else
ws.Cells(LigneEnteteSprint, 1).Value = "Sprint " & NoSprint & " - Capacité: " & Sheets("DomaineDeValeur").Cells(NoSprint + 1, 9) & "Pts" & " vs Pts planifiés: " & PointsPlanifies & " / Dates: " & Format(Sheets("DomaineDeValeur").Cells(NoSprint + 1, 8), "yyyy/mm/dd") & " - " & Format(Sheets("DomaineDeValeur").Cells(NoSprint + 1, 10), "yyyy/mm/dd")
End If
For Each xComment In Application.ActiveSheet.Comments
xComment.Shape.TextFrame.AutoSize = True
Next
Next
ws.Range("A:AZ").Copy Destination:=Sheets("Sprints").Range("A1")
'On cache les lignes existantes qui font partie d'une livraison précédente
LignesACacher = 2 & ":" & 645
Sheets("Sprints").Rows(LignesACacher).EntireRow.Hidden = True
'On merge les colonnes A etB
For i = 646 To LS
If Sheets("Sprints").Cells(i, 3) <> "" Then
Sheets("Sprints").Range(Cells(i, 1), Cells(i, 2)).Merge
End If
Next
Sheets("Sprints").Rows("2:2").Select
ActiveWindow.FreezePanes = True
'Permettre la modification de certaines colonnes
Sheets("Sprints").Range("A2:B5000").Locked = False
Sheets("Sprints").Range("F2:R5000").Locked = False
'Appliquer les domaines de valeurs
'Analyste Fonctionnel
Sheets("Sprints").Range("G2:G5000").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DomaineDeValeur!$A$26:$A$33"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
'% avancement Conception Fonctionnel et Organique
Sheets("Sprints").Range("I2:J5000").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DomaineDeValeur!$C$26:$C$31"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
'StatutTI
Sheets("Sprints").Range("K2:K5000").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DomaineDeValeur!$C$2:$C$6"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
'% Affaire
Sheets("Sprints").Range("L2:L5000").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DomaineDeValeur!$C$26:$C$31"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
'Responsable Affaire
Sheets("Sprints").Range("N2:N5000").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DomaineDeValeur!$E$38:$E$51"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
'Type
Sheets("Sprints").Range("O2:O5000").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DomaineDeValeur!$A$19:$A$22"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
'Pilote
Sheets("Sprints").Range("Q2:Q5000").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DomaineDeValeur!$A$38:$A$44"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
'Statut cas d'essai
Sheets("Sprints").Range("R2:R5000").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DomaineDeValeur!$C$38:$C$40"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Sheets("Sprints").Protect , Userinterfaceonly:=True, AllowFormattingCells:=True
Sheets("Sprints").EnableOutlining = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayStatusBar = True
Application.EnableEvents = True
'ActiveSheet.DisplayPageBreaks = True
Sheets("Sprints").Cells(1, 1).Select
errHandler:
Application.ScreenUpdating = True
'End Function
End Sub