mois = 2
annee = 2016
MsgBox "le dernier jour du deuxiéme mois de l'année " & annee & " est la veille du premier jour du mois suivant et est donc le " & DateSerial(annee, mois + 1, 1) - 1
MsgBox "le dernier jour du deuxiéme mois de l'année " & annee & " est la veille du premier jour du mois suivant et est donc le " & DateSerial(annee, mois + 1, 0)
MsgBox "le dernier jour du mois de " & MonthName(mois) & " de l'année " & annee & " est la veille du premier jour du mois (" & MonthName(mois + 1) & ") suivant et est donc le " & DateSerial(annee, mois + 1, 0)
MsgBox Month("février 2016")
With Worksheets("2016")
Dim toto(1 To 12) As Range, derlig As Long, i As Long, mois As Byte
derlig = .Range("D" & Rows.Count).End(xlUp).Row
For i = 4 To derlig
If IsDate(.Range("D" & i).Value) Then
mois = Month(.Range("D" & i).Value)
If toto(mois) Is Nothing Then
Set toto(mois) = Rows(i)
Else
Set toto(mois) = Application.Union(toto(mois), Rows(i))
End If
End If
Next
For i = 1 To 12
If Not toto(i) Is Nothing Then
Worksheets(MonthName(i)).Cells.ClearContents
toto(i).Copy Destination:=Worksheets(MonthName(i)).Range("A4")
End If
Next
End With
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJe vais essayer de vous expliquer (pas évident par écrit)
selon la valeur (date) d'une cellule
Private Sub CommandButton1_Click()
With Worksheets("2016")
Dim toto(1 To 12) As Range
For i = 1 To .Range("D" & Rows.Count).End(xlUp).Row
mois = Month(.Range("D" & i).Value)
If toto(mois) Is Nothing Then
Set toto(mois) = Rows(i)
Else
Set toto(mois) = Union(toto(mois), Rows(i))
End If
Next
For i = 1 To 12
If Not toto(i) Is Nothing Then
toto(i).Copy Destination:=Worksheets(MonthName(i)).Range("A1")
End If
Next
End With
End Sub