Debugage VBA - Dernier jour du mois

Bonjour,

J'ai un petit soucis sur une macro qui me permet de traiter des données, je souhaite récupérer le dernier jour du mois sur différentes date. La macro ne bug pas, mais ne me donne pas non plus de resultat, en vrai elle ne fait rien ...

Une solution ?

Données entrée :

- Liste de date en colonne J à partir de la ligne 2

Sortie :

- Remplacée par le dernier jour du mois de ces memes dates toujours en colonne J..

Voici ma macro :

Sub eom()

Dim eom As Date
Dim dDate As Date
For i = 2 To cells(Rows.Count, 10).End(xlUp).Row

dDate = cells(i, 10)
eom = GetLastDateOfMonth(dDate)

Next i

End Sub

et la function que j'utilise :

Private Function GetLastDateOfMonth(dDate) As Date
     GetLastDateOfMonth = DateSerial(Year(dDate), Month(dDate) + 1, 0) - 1
End Function

Merci a vous

Bonjour,

Essaye plutot avec la function suivante car la tienne donne un jour de moins (30/05 au lieu de 31/05) :

Function lastday(datedujour)

    mois = Month(datedujour)
    annee = Year(datedujour)
    firstday = Format("01/" & mois + 1 & "/" & annee, "dd/mm/yyyy")
    lastday = CDate(firstday) - 1

End Function

De plus, ta variable "eom" ne fait référence à rien. Remplace "eom" par "dDate" dans ta boucle :

dDate = cells(i, 10)
dDate = lastday(dDate) 'avec ma function si besoin

A plus !

Hum toujours pas de résultat de mon coté :/ ..

Je joint mon fichier test pour que tu puisse y jeter un coup d'oeil

Merci

17test-2.xlsm (14.27 Ko)

Re,

Exact autant pour moi je n'avais pas testé l'ensemble.

voilà qui devrait fonctionner.

Sub eom()

Dim dDate As Date
For i = 2 To Cells(Rows.Count, 10).End(xlUp).Row

dDate = Cells(i, 10)
result = lastday(dDate)
Cells(i, 10).Value = result

Next i
End Sub

Function lastday(datedujour)

    mois = Month(datedujour)
    annee = Year(datedujour)
    firstday = Format("01/" & mois + 1 & "/" & annee, "dd/mm/yyyy")
    lastday = CDate(firstday) - 1

End Function

A plus !

Yes c'est parfait

Merci beaucoup pour ton aide!

Vincent

Bonjour

et en plus cours

A+

Maurice

Sub TestDate()
Dim L&, M&, An&, NB_JOURS&
    For L = 2 To Cells(Rows.Count, 10).End(xlUp).Row
        M = Month(Cells(L, 10))
        An = Year(Cells(L, 10))
        NB_JOURS = Day(DateSerial(An, M + 1, 1) - 1)
        Cells(L, 10).Value = DateSerial(An, M, NB_JOURS)
    Next
End Sub

Bonjour,

Je reviens a la charge car j'ai remarqué un petit bug avec cette macro..

En effet, lorsque la date est au mois de décembre (ex : 01/12/2010), cela me renvoit toujours au 12/01/2010 au lieu du 31/12/2010.

Je pense qu'elle a un problème pour incrémenter le mois de décembre sans changer d'année..

Une solution ?

Rechercher des sujets similaires à "debugage vba dernier jour mois"