Additionner des mois

Bonjour,

Je souhaite additionner des mois avec un écart. Exemple additionner 3 au mois 10 ce qui donnera janvier. J'ai pensé à utiliser AddDate mais je n'ai pas une date avec un jour et une année.

J'ai commencé à dev une fonction prenant en parametre le mois et le decalage souhaité :

Function decalage(byref mois, byref decalage)

dim number as long

number=mois+decalage

if(number mod 12= 0)

ect, mais ça ne fonctionne pas correctement car le mois 12 renvoie le mois 0, ..

Si vous avez des pistes je suis preneur,

Merci à vous !

Bonjour

Essaie ça et tu devrais avoir la date d'aujourd'hui décalée de 3 mois :

DateSerial(Year(Date), Month(Date) + 3, Day(Date))

Bye !

Merci pour la réactivité.

Quand j'essaye avec ça MsgBox (month(DateSerial(Year(1990), month(1) + 3, Day(1)))), j'obtiens 3 au lieu de 4. Par contre avec ça MsgBox (month(DateSerial(Year(1990), month(1) + 4, Day(1)))), j'obtiens 5

Attention : les arguments de Year, de Month et de Day sont des dates, c'est à dire le nombre de jours écoulés depuis le 1/1/1900.

Quand tu écris

Year(1990)

Tu obtiens l'année du 1990 ième jour après le 1/1/1900, c'est à dire : 1905

Pareil pour Month

OK ?

Je ne te suis pas, je fais comment du coup pour addition au mois 3, 4 mois pour avoir 7 mois ?

Bonsoir

si tu n'as que le mois :

Sub Ajout_mois()
mois = 11
ajout = 3
resul = mois + ajout
If resul > 12 Then
    resul = resul - 12
End If
MsgBox resul
End Sub

A adapter

????

Bye

Bonsoir,

Une autre proposition avec une fonction personnalisée.

Retourne le mois en lettre.

Cdlt.

Public Function Decalage(Mois As Integer, nbMois As Integer)
Dim n As Integer
    Application.Volatile
    If Mois > 12 Then
        Decalage = CVErr(xlErrNA)
        Exit Function
    End If
    n = Mois + nbMois
    n = IIf(n Mod 12 = 0, 12, n Mod 12)
    Decalage = MonthName(n)
End Function
Rechercher des sujets similaires à "additionner mois"