Bonjour,

Je désire ecrire une condition avec restrictions. Cette condition me permettra d'obtenir la dernière date de chaque mois.

Ma macro analyse les cellules de la colone 2 (cette cellule comporte la date)L'analyse est effectuée ligne après ligne en les comparant entre elles: la cellule de la ligne 3 avec la cellule de la ligne 2 puis la cellule de la ligne 4 avec la cellule de la ligne 3 puis la cellule de la ligne 5 avec la cellule de la ligne 4, ect

Les informations traitées dans la date sont l'année et le mois uniquement.

Je désire écrire la condition suivante:

Si le mois de la ligne n+1 est supérieur au mois de la ligne n sachant que l'année est la même, alors copie et colle la ligne n dans la feuille2 et colore la ligne n dans la feuille1


Voici le code que j'ai créé:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Sub nouveau()
 
Dim Lig As Long, DerLig As Long
Dim Y As Integer, YC As Integer
Dim M As Byte, MC As Byte
Dim i As Long
 
    DerLig = 2
    Sheets("Sheet2").Cells.ClearContents
    With Sheets("Sheet1")
        .Cells.Interior.ColorIndex = xlNone
 
        Y = Year(.Cells(2, 2))
        M = Month(.Cells(2, 2))
 
        For Lig = 2 To .Range("B65536").End(xlUp).Row
 
            YC = Year(.Cells(Lig, 2))
            MC = Month(.Cells(Lig, 2))
 
    If MC > M Or (MC = 1 And M = 12) And YC = Y Or (YC = 2000 And Y = 2009) Then
                .Rows(Lig - 1).Copy Sheets("Sheet2").Rows(DerLig)
                DerLig = DerLig + 1
                .Rows(Lig - 1).Interior.ColorIndex = 3
                Y = YC And M = MC
 
            End If
        Next Lig
    End With
End Sub
Mais c'est pas bon du tout et je n'arrive pas à comprendre ce qui ne vas pas et c'est pour cette raison que je sollicite votre aide pour interprêter le code et comprendre ou je dois le modifier...

Merci,