Sub boucle()
Dim derLigne As Long
Dim i As Long
derLigne = Sheets("BADGES").Cells(Sheets("BADGES").Rows.Count, 1).End(xlUp).Row
'on determine la fin du tableau
For i = 1 To derLigne
'boucle qui regarde chaque ligne
End Sub
Sub tri_et_archivage_test3()
'
' tri_et_archive_test3 Macro
'
If Cells(5, 2).Value = "" Then
'si la date est non nulle
MsgBox "attention, vous ne pouvez pas archiver tant que la date de restitution réelle n'est pas renseignée "
Else
Columns("A:M").Select
Range("M1").Activate
ActiveWorkbook.Worksheets("BADGES").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("BADGES").Sort.SortFields.Add Key:=Range("E2:E151") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("BADGES").Sort.SortFields.Add Key:=Range("D2:D151") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("BADGES").Sort.SortFields.Add(Range("C2:C151"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(123, _
241, 253)
With ActiveWorkbook.Worksheets("BADGES").Sort
.SetRange Range("A1:M151")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Rows("2:2").Copy
'selection de la ligne puis copie (remplace fonction Rows(ou)Range.Select Selection.Copy c'est plus court d'écrire : Range.copy et on utilise plus de presse papier)
Sheets("archives2").Select
'selection de la destination
Sheets("archives2").Activate
Sheets("archives2").Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).Select
' fait en sorte que l'archivage se fasse après l'archivage précédent
ActiveSheet.Paste
' copie des données
Sheets("BADGES").Select
'retour sur la page de départ
Range("B2:I2").Select
'sélection des cases à effacer
Application.CutCopyMode = False
'truc bizarre de l'enregistreur de la macro
Selection.ClearContents
'efface contenu des cellules selectionnées
Columns("A:M").Select
Range("M1").Activate
ActiveWorkbook.Worksheets("BADGES").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("BADGES").Sort.SortFields.Add Key:=Range("E2:E151") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'tri colonne
ActiveWorkbook.Worksheets("BADGES").Sort.SortFields.Add Key:=Range("D2:D151") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'tri colonne
ActiveWorkbook.Worksheets("BADGES").Sort.SortFields.Add(Range("C2:C151"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(123, _
241, 253)
'tri colonne
With ActiveWorkbook.Worksheets("BADGES").Sort
.SetRange Range("A1:M151")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B3").Select
End If
End Sub