1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| Option Explicit
Sub ArchiverClotures() '--- archiver incidents marqués "clôturés"
Dim loBase As ListObject, loArch As ListObject, rBase As Range
Set loBase = ActiveSheet.ListObjects("BASE_INCIDENTS")
Set loArch = Worksheets("Archive").ListObjects("Archive")
loBase.Range.AutoFilter Field:=14, Criteria1:="Clôturé"
If loBase.Range.SpecialCells(xlCellTypeVisible).Rows.Count = 1 Then
'--- aucun incident clôturé à archiver --- passer
Else
'--- copier-coller incidents clôturés
loBase.DataBodyRange.SpecialCells(xlCellTypeVisible).Cut
Sheets("Archive").Select
loArch.DataBodyRange(loArch.ListRows.Count, 1).Offset(1, 0).Select
ActiveSheet.Paste
'--- supprimer lignes incidents clôturés archivés
Sheets("Incident").Select
Range("BASE_INCIDENTS[Num-Auto]").Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End If
loBase.Range.AutoFilter '--- réafficher tout
Range("A8").Select
Set loBase = Nothing
Set loArch = Nothing
End Sub
Sub AjoutIncident()
Dim loBase As ListObject
Set loBase = ActiveSheet.ListObjects("BASE_INCIDENTS")
loBase.ListRows.Add
loBase.DataBodyRange.Cells(loBase.ListRows.Count, 1).Select
'--- enregistre code dernier incident en A1
'--- nécessaire pour incrémenter l'incident suivant, le dernier étant peut-être déjà archivé
Range("A1") = Format(CLng(Left(Range("A1"), 6)) + 1, "000000") & Right(Range("A1"), 5)
'--- préremplissage
ActiveCell = Range("A1")
ActiveCell.Offset(0, 1) = Date
ActiveCell.Offset(0, 2) = Format(Now, "hh:nn:ss")
ActiveCell.Offset(0, 3) = ActiveWorkbook.BuiltinDocumentProperties("Last Author")
ActiveCell.Offset(0, 4).Select
Set loBase = Nothing
End Sub |
Partager