Explication du code
ligne = 2
: ce sera le début de la mise à plat
With Sheets("recap")
...
End With
quand une donnée sera précédée d'un point, elle fera référence à la feuille "recap"
.Range(.Cells(2, 1), .Cells(.Cells(1, 1).End(xlDown).Row, 3)).ClearContents
j'efface les données précédente, depuis la cellule ligne 2 colonne 1 jusque la cellule dernière ligne (End(xlDown).Row
) colonne 3
For j = 7 To [A1].End(xlToRight).Column
For i = 2 To [A1].End(xlDown).Row
...
Next i
Next j
je vais prendre les dates depuis la colonne 7 (j) et la ligne 2 (i) jusqu'à la dernière colonne et dernière ligne
If IsDate(Cells(i, j)) Then
If Cells(i, j) > 42735 Then 'après le 1/1/2017
.Cells(ligne, 1) = Cells(i, j)
.Cells(ligne, 2) = Cells(i, 5)
.Cells(ligne, 3) = Cells(1, j)
ligne = ligne + 1
End If
End If
Si c'est une date après le 1/1/2017, alors je copie les infos dans récap à la ligne que j'incrémente ensuite