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
| Sub ModifTypeAmort()
Dim Cellule As Range
Set Cellule = Range("A11")
Do While Not IsEmpty(Cellule) ' On boucle tant qu'il y a des valeurs en A
' On teste si six valeurs identiques se suivent en A, grâce à NB.SI en VBA
If WorksheetFunction.CountIf(Range(Cellule, Cellule(6, 1)), Cellule.Value) = 6 Then
If Cellule(1, 15).Value = "DEG" Then
Cellule(1, 15).Value = " Dégr. 1/Lin."
Else
Cellule(1, 15).Value = "Linéaire"
End If
' On fait pointer Cellule vers la première cellule du prochain groupe en A, 7 lignes plus bas
Set Cellule = Cellule(7, 1)
' Si pas six valeurs qui se suivent, on teste si deux valeurs se suivent
ElseIf WorksheetFunction.CountIf(Range(Cellule, Cellule(2, 1)), Cellule.Value) = 2 Then
If Cellule(1, 15).Value = "DEG" Then
Cellule(1, 15).Value = " Dégressif"
Else
Cellule(1, 15).Value = "Linéaire"
End If
' On fait pointer Cellule vers la première cellule du prochain groupe en A, 3 lignes plus bas
Set Cellule = Cellule(3, 1)
Else
' Si ni six ni deux valeurs qui se suivent, on fait pointer Cellule vers la ligne suivante en A
Set Cellule = Cellule(2, 1)
End If
Loop
End Sub |
Partager