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éé:
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...
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
Merci,
Partager