Sub nombrejours() d1 = CDate([a1]) d2 = CDate([b1]) colonne = 2 While DateSerial(Year(d1), Month(d1) + 1, 0) < d2 a = DateSerial(Year(d1), Month(d1) + 1, 0) colonne = colonne + 1 Cells(1, colonne) = a - d1 + 1 d1 = a + 1 Wend colonne = colonne + 1 Cells(1, colonne) = d2 - a End Sub
docm
"Philippe de PARIS" a écrit dans le message news:
Bonjour,
en a1 = 01/02/2006 b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2 dates et avoir en
c1 = nb jours de janvier entre ces 2 dates d1 = nb de jours de février entre ces 2 dates
etc jusqu'à n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou partie de l'année...
merci de votre aide !
Philippe
Jacques93
Bonjour Philippe de PARIS,
En VBA :
Private Sub Worksheet_Activate() CompteJours End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:B1")) Is Nothing Then CompteJours End Sub
Private Sub CompteJours() Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1")) mFin = Month(Range("B1")) For mois = 1 To 12 If mois < mDeb Or mois > mFin Then Cells(1, 2 + mois) = 0 ElseIf mois = mDeb Then Cells(1, 2 + mois) = Day(Range("A1")) ElseIf mois = mFin Then Cells(1, 2 + mois) = Day(Range("B1")) Else Cells(1, 2 + mois) = Day(DateAdd _ ("d", -1, "01/" & mois + 1 & "/" & Year(Range("A1")))) End If Next mois End Sub
Bonjour,
en a1 = 01/02/2006 b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2 dates et avoir en
c1 = nb jours de janvier entre ces 2 dates d1 = nb de jours de février entre ces 2 dates
etc jusqu'à n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou partie de l'année...
merci de votre aide !
Philippe
-- Cordialement,
Jacques.
Bonjour Philippe de PARIS,
En VBA :
Private Sub Worksheet_Activate()
CompteJours
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B1")) Is Nothing Then CompteJours
End Sub
Private Sub CompteJours()
Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1"))
mFin = Month(Range("B1"))
For mois = 1 To 12
If mois < mDeb Or mois > mFin Then
Cells(1, 2 + mois) = 0
ElseIf mois = mDeb Then
Cells(1, 2 + mois) = Day(Range("A1"))
ElseIf mois = mFin Then
Cells(1, 2 + mois) = Day(Range("B1"))
Else
Cells(1, 2 + mois) = Day(DateAdd _
("d", -1, "01/" & mois + 1 & "/" & Year(Range("A1"))))
End If
Next mois
End Sub
Bonjour,
en
a1 = 01/02/2006
b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2 dates
et avoir en
c1 = nb jours de janvier entre ces 2 dates
d1 = nb de jours de février entre ces 2 dates
etc jusqu'à
n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou
partie de l'année...
Private Sub Worksheet_Activate() CompteJours End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:B1")) Is Nothing Then CompteJours End Sub
Private Sub CompteJours() Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1")) mFin = Month(Range("B1")) For mois = 1 To 12 If mois < mDeb Or mois > mFin Then Cells(1, 2 + mois) = 0 ElseIf mois = mDeb Then Cells(1, 2 + mois) = Day(Range("A1")) ElseIf mois = mFin Then Cells(1, 2 + mois) = Day(Range("B1")) Else Cells(1, 2 + mois) = Day(DateAdd _ ("d", -1, "01/" & mois + 1 & "/" & Year(Range("A1")))) End If Next mois End Sub
Bonjour,
en a1 = 01/02/2006 b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2 dates et avoir en
c1 = nb jours de janvier entre ces 2 dates d1 = nb de jours de février entre ces 2 dates
etc jusqu'à n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou partie de l'année...
merci de votre aide !
Philippe
-- Cordialement,
Jacques.
Philippe de PARIS
Merci,
Mais je arrive pas à utiliser cette macro, elle apparaît pas ....
Elle est à coller où ?
merci, Philippe
"Jacques93" a écrit dans le message de news:
Bonjour Philippe de PARIS,
En VBA :
Private Sub Worksheet_Activate() CompteJours End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:B1")) Is Nothing Then CompteJours End Sub
Private Sub CompteJours() Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1")) mFin = Month(Range("B1")) For mois = 1 To 12 If mois < mDeb Or mois > mFin Then Cells(1, 2 + mois) = 0 ElseIf mois = mDeb Then Cells(1, 2 + mois) = Day(Range("A1")) ElseIf mois = mFin Then Cells(1, 2 + mois) = Day(Range("B1")) Else Cells(1, 2 + mois) = Day(DateAdd _ ("d", -1, "01/" & mois + 1 & "/" & Year(Range("A1")))) End If Next mois End Sub
Bonjour,
en a1 = 01/02/2006 b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2 dates et avoir en
c1 = nb jours de janvier entre ces 2 dates d1 = nb de jours de février entre ces 2 dates
etc jusqu'à n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou partie de l'année...
merci de votre aide !
Philippe
-- Cordialement,
Jacques.
Merci,
Mais je arrive pas à utiliser cette macro, elle apparaît pas ....
Elle est à coller où ?
merci,
Philippe
"Jacques93" <jacques.le-gocNO@PUBwouanadoo.fr> a écrit dans le message de
news: OeHLcQWhFHA.2852@TK2MSFTNGP15.phx.gbl...
Bonjour Philippe de PARIS,
En VBA :
Private Sub Worksheet_Activate()
CompteJours
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B1")) Is Nothing Then CompteJours
End Sub
Private Sub CompteJours()
Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1"))
mFin = Month(Range("B1"))
For mois = 1 To 12
If mois < mDeb Or mois > mFin Then
Cells(1, 2 + mois) = 0
ElseIf mois = mDeb Then
Cells(1, 2 + mois) = Day(Range("A1"))
ElseIf mois = mFin Then
Cells(1, 2 + mois) = Day(Range("B1"))
Else
Cells(1, 2 + mois) = Day(DateAdd _
("d", -1, "01/" & mois + 1 & "/" & Year(Range("A1"))))
End If
Next mois
End Sub
Bonjour,
en
a1 = 01/02/2006
b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2
dates
et avoir en
c1 = nb jours de janvier entre ces 2 dates
d1 = nb de jours de février entre ces 2 dates
etc jusqu'à
n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou
partie de l'année...
Mais je arrive pas à utiliser cette macro, elle apparaît pas ....
Elle est à coller où ?
merci, Philippe
"Jacques93" a écrit dans le message de news:
Bonjour Philippe de PARIS,
En VBA :
Private Sub Worksheet_Activate() CompteJours End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:B1")) Is Nothing Then CompteJours End Sub
Private Sub CompteJours() Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1")) mFin = Month(Range("B1")) For mois = 1 To 12 If mois < mDeb Or mois > mFin Then Cells(1, 2 + mois) = 0 ElseIf mois = mDeb Then Cells(1, 2 + mois) = Day(Range("A1")) ElseIf mois = mFin Then Cells(1, 2 + mois) = Day(Range("B1")) Else Cells(1, 2 + mois) = Day(DateAdd _ ("d", -1, "01/" & mois + 1 & "/" & Year(Range("A1")))) End If Next mois End Sub
Bonjour,
en a1 = 01/02/2006 b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2 dates et avoir en
c1 = nb jours de janvier entre ces 2 dates d1 = nb de jours de février entre ces 2 dates
etc jusqu'à n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou partie de l'année...
merci de votre aide !
Philippe
-- Cordialement,
Jacques.
Jacques93
Bonjour Philippe de PARIS,
Dans Excel, tu tapes Alt+F11, dans la partie gauche (Project - VBA Project) tu double-click sur le nom de la feuille, puis tu colles le code dans la partie droite.
Au cas ou, le classseur ici :
http://cjoint.com/?hksA7T1vyQ
Merci,
Mais je arrive pas à utiliser cette macro, elle apparaît pas ....
Elle est à coller où ?
merci, Philippe
"Jacques93" a écrit dans le message de news:
Bonjour Philippe de PARIS,
En VBA :
Private Sub Worksheet_Activate() CompteJours End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:B1")) Is Nothing Then CompteJours End Sub
Private Sub CompteJours() Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1")) mFin = Month(Range("B1")) For mois = 1 To 12 If mois < mDeb Or mois > mFin Then Cells(1, 2 + mois) = 0 ElseIf mois = mDeb Then Cells(1, 2 + mois) = Day(Range("A1")) ElseIf mois = mFin Then Cells(1, 2 + mois) = Day(Range("B1")) Else Cells(1, 2 + mois) = Day(DateAdd _ ("d", -1, "01/" & mois + 1 & "/" & Year(Range("A1")))) End If Next mois End Sub
Bonjour,
en a1 = 01/02/2006 b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2 dates et avoir en
c1 = nb jours de janvier entre ces 2 dates d1 = nb de jours de février entre ces 2 dates
etc jusqu'à n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou partie de l'année...
merci de votre aide !
Philippe
-- Cordialement,
Jacques.
-- Cordialement,
Jacques.
Bonjour Philippe de PARIS,
Dans Excel, tu tapes Alt+F11, dans la partie gauche
(Project - VBA Project) tu double-click sur le nom de la feuille, puis
tu colles le code dans la partie droite.
Au cas ou, le classseur ici :
http://cjoint.com/?hksA7T1vyQ
Merci,
Mais je arrive pas à utiliser cette macro, elle apparaît pas ....
Elle est à coller où ?
merci,
Philippe
"Jacques93" <jacques.le-gocNO@PUBwouanadoo.fr> a écrit dans le message de
news: OeHLcQWhFHA.2852@TK2MSFTNGP15.phx.gbl...
Bonjour Philippe de PARIS,
En VBA :
Private Sub Worksheet_Activate()
CompteJours
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B1")) Is Nothing Then CompteJours
End Sub
Private Sub CompteJours()
Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1"))
mFin = Month(Range("B1"))
For mois = 1 To 12
If mois < mDeb Or mois > mFin Then
Cells(1, 2 + mois) = 0
ElseIf mois = mDeb Then
Cells(1, 2 + mois) = Day(Range("A1"))
ElseIf mois = mFin Then
Cells(1, 2 + mois) = Day(Range("B1"))
Else
Cells(1, 2 + mois) = Day(DateAdd _
("d", -1, "01/" & mois + 1 & "/" & Year(Range("A1"))))
End If
Next mois
End Sub
Bonjour,
en
a1 = 01/02/2006
b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2
dates
et avoir en
c1 = nb jours de janvier entre ces 2 dates
d1 = nb de jours de février entre ces 2 dates
etc jusqu'à
n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou
partie de l'année...
Dans Excel, tu tapes Alt+F11, dans la partie gauche (Project - VBA Project) tu double-click sur le nom de la feuille, puis tu colles le code dans la partie droite.
Au cas ou, le classseur ici :
http://cjoint.com/?hksA7T1vyQ
Merci,
Mais je arrive pas à utiliser cette macro, elle apparaît pas ....
Elle est à coller où ?
merci, Philippe
"Jacques93" a écrit dans le message de news:
Bonjour Philippe de PARIS,
En VBA :
Private Sub Worksheet_Activate() CompteJours End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:B1")) Is Nothing Then CompteJours End Sub
Private Sub CompteJours() Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1")) mFin = Month(Range("B1")) For mois = 1 To 12 If mois < mDeb Or mois > mFin Then Cells(1, 2 + mois) = 0 ElseIf mois = mDeb Then Cells(1, 2 + mois) = Day(Range("A1")) ElseIf mois = mFin Then Cells(1, 2 + mois) = Day(Range("B1")) Else Cells(1, 2 + mois) = Day(DateAdd _ ("d", -1, "01/" & mois + 1 & "/" & Year(Range("A1")))) End If Next mois End Sub
Bonjour,
en a1 = 01/02/2006 b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2 dates et avoir en
c1 = nb jours de janvier entre ces 2 dates d1 = nb de jours de février entre ces 2 dates
etc jusqu'à n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou partie de l'année...
merci de votre aide !
Philippe
-- Cordialement,
Jacques.
-- Cordialement,
Jacques.
Philippe de PARIS
merci, entre temps j'avais réussi...
ça a l'air de fonctionner, sauf pour le premier mois où apparaît invariablement 1 au lieu du nb de jour ...
"Jacques93" a écrit dans le message de news:
Bonjour Philippe de PARIS,
Dans Excel, tu tapes Alt+F11, dans la partie gauche (Project - VBA Project) tu double-click sur le nom de la feuille, puis tu colles le code dans la partie droite.
Au cas ou, le classseur ici :
http://cjoint.com/?hksA7T1vyQ
Merci,
Mais je arrive pas à utiliser cette macro, elle apparaît pas ....
Elle est à coller où ?
merci, Philippe
"Jacques93" a écrit dans le message de news:
Bonjour Philippe de PARIS,
En VBA :
Private Sub Worksheet_Activate() CompteJours End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:B1")) Is Nothing Then CompteJours End Sub
Private Sub CompteJours() Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1")) mFin = Month(Range("B1")) For mois = 1 To 12 If mois < mDeb Or mois > mFin Then Cells(1, 2 + mois) = 0 ElseIf mois = mDeb Then Cells(1, 2 + mois) = Day(Range("A1")) ElseIf mois = mFin Then Cells(1, 2 + mois) = Day(Range("B1")) Else Cells(1, 2 + mois) = Day(DateAdd _ ("d", -1, "01/" & mois + 1 & "/" & Year(Range("A1")))) End If Next mois End Sub
Bonjour,
en a1 = 01/02/2006 b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2 dates et avoir en
c1 = nb jours de janvier entre ces 2 dates d1 = nb de jours de février entre ces 2 dates
etc jusqu'à n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou partie de l'année...
merci de votre aide !
Philippe
-- Cordialement,
Jacques.
-- Cordialement,
Jacques.
merci,
entre temps j'avais réussi...
ça a l'air de fonctionner, sauf pour le premier mois où apparaît
invariablement 1 au lieu du nb de jour ...
"Jacques93" <jacques.le-gocNO@PUBwouanadoo.fr> a écrit dans le message de
news: O3IUWlWhFHA.3448@TK2MSFTNGP12.phx.gbl...
Bonjour Philippe de PARIS,
Dans Excel, tu tapes Alt+F11, dans la partie gauche
(Project - VBA Project) tu double-click sur le nom de la feuille, puis tu
colles le code dans la partie droite.
Au cas ou, le classseur ici :
http://cjoint.com/?hksA7T1vyQ
Merci,
Mais je arrive pas à utiliser cette macro, elle apparaît pas ....
Elle est à coller où ?
merci,
Philippe
"Jacques93" <jacques.le-gocNO@PUBwouanadoo.fr> a écrit dans le message de
news: OeHLcQWhFHA.2852@TK2MSFTNGP15.phx.gbl...
Bonjour Philippe de PARIS,
En VBA :
Private Sub Worksheet_Activate()
CompteJours
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B1")) Is Nothing Then CompteJours
End Sub
Private Sub CompteJours()
Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1"))
mFin = Month(Range("B1"))
For mois = 1 To 12
If mois < mDeb Or mois > mFin Then
Cells(1, 2 + mois) = 0
ElseIf mois = mDeb Then
Cells(1, 2 + mois) = Day(Range("A1"))
ElseIf mois = mFin Then
Cells(1, 2 + mois) = Day(Range("B1"))
Else
Cells(1, 2 + mois) = Day(DateAdd _
("d", -1, "01/" & mois + 1 & "/" & Year(Range("A1"))))
End If
Next mois
End Sub
Bonjour,
en
a1 = 01/02/2006
b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2
dates
et avoir en
c1 = nb jours de janvier entre ces 2 dates
d1 = nb de jours de février entre ces 2 dates
etc jusqu'à
n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou
partie de l'année...
ça a l'air de fonctionner, sauf pour le premier mois où apparaît invariablement 1 au lieu du nb de jour ...
"Jacques93" a écrit dans le message de news:
Bonjour Philippe de PARIS,
Dans Excel, tu tapes Alt+F11, dans la partie gauche (Project - VBA Project) tu double-click sur le nom de la feuille, puis tu colles le code dans la partie droite.
Au cas ou, le classseur ici :
http://cjoint.com/?hksA7T1vyQ
Merci,
Mais je arrive pas à utiliser cette macro, elle apparaît pas ....
Elle est à coller où ?
merci, Philippe
"Jacques93" a écrit dans le message de news:
Bonjour Philippe de PARIS,
En VBA :
Private Sub Worksheet_Activate() CompteJours End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:B1")) Is Nothing Then CompteJours End Sub
Private Sub CompteJours() Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1")) mFin = Month(Range("B1")) For mois = 1 To 12 If mois < mDeb Or mois > mFin Then Cells(1, 2 + mois) = 0 ElseIf mois = mDeb Then Cells(1, 2 + mois) = Day(Range("A1")) ElseIf mois = mFin Then Cells(1, 2 + mois) = Day(Range("B1")) Else Cells(1, 2 + mois) = Day(DateAdd _ ("d", -1, "01/" & mois + 1 & "/" & Year(Range("A1")))) End If Next mois End Sub
Bonjour,
en a1 = 01/02/2006 b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2 dates et avoir en
c1 = nb jours de janvier entre ces 2 dates d1 = nb de jours de février entre ces 2 dates
etc jusqu'à n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou partie de l'année...
merci de votre aide !
Philippe
-- Cordialement,
Jacques.
-- Cordialement,
Jacques.
Jacques93
Chez moi, et sur le classeur mis sur http://cjoint.com/?hksA7T1vyQ ça marche...
merci, entre temps j'avais réussi...
ça a l'air de fonctionner, sauf pour le premier mois où apparaît invariablement 1 au lieu du nb de jour ...
-- Cordialement,
Jacques.
Chez moi, et sur le classeur mis sur http://cjoint.com/?hksA7T1vyQ
ça marche...
merci,
entre temps j'avais réussi...
ça a l'air de fonctionner, sauf pour le premier mois où apparaît
invariablement 1 au lieu du nb de jour ...
Sub nombrejours() d1 = CDate([a2]) d2 = CDate([b2]) colonne = 2 While DateSerial(Year(d1), Month(d1) + 1, 0) < d2 a = DateSerial(Year(d1), Month(d1) + 1, 0) colonne = colonne + 1 Cells(1, colonne) = a - d1 + 1 d1 = a + 1 Wend colonne = colonne + 1 Cells(1, colonne) = d2 - a End Sub
"Philippe de PARIS" a écrit dans le message news:
Bonjour,
en a1 = 01/02/2006 b1 /06/2006
Comment répartir automatiquement le nb de jours par mois entre ces 2 dates et avoir en
c1 = nb jours de janvier entre ces 2 dates d1 = nb de jours de février entre ces 2 dates
etc jusqu'à n1 = nb de jours de décembre entre ces 2 dates.
Les dates en A1 et B1 étant susceptible de varier pour couvrir tout ou partie de l'année...
merci de votre aide !
Philippe
Jacques93
Bonsoir Philippe de PARIS,
Pas les yeux en face des trous 8-) Pour le 1er mois, je comptais les jours entre le 1 et la date de début au lieu de compter entre la date et la fin du mois. Honte sur moi ...
Public Sub CompteJours() Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1")) mFin = Month(Range("B1")) For mois = 1 To 12 If mois < mDeb Or mois > mFin Then Cells(1, 2 + mois) = 0 ElseIf mois = mDeb Then Cells(1, 2 + mois) = DernierJourDuMois(mois, Year(Range("A1"))) - _ Day(Range("A1")) + 1 ElseIf mois = mFin Then Cells(1, 2 + mois) = Day(Range("B1")) Else Cells(1, 2 + mois) = DernierJourDuMois(mois, Year(Range("A1"))) End If Next mois End Sub
Function DernierJourDuMois(m As Integer, y As Integer) As Integer DernierJourDuMois = Day(DateAdd("d", -1, "01/" & m + 1 & "/" & y)) End Function
Chez moi non !
le nombre de jours du premier mois (quelque soit celui ci) n'est pas bon....
mystère d'excel ...
-- Cordialement,
Jacques.
Bonsoir Philippe de PARIS,
Pas les yeux en face des trous 8-)
Pour le 1er mois, je comptais les jours entre le 1 et la date de début
au lieu de compter entre la date et la fin du mois. Honte sur moi ...
Public Sub CompteJours()
Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1"))
mFin = Month(Range("B1"))
For mois = 1 To 12
If mois < mDeb Or mois > mFin Then
Cells(1, 2 + mois) = 0
ElseIf mois = mDeb Then
Cells(1, 2 + mois) = DernierJourDuMois(mois, Year(Range("A1"))) - _
Day(Range("A1")) + 1
ElseIf mois = mFin Then
Cells(1, 2 + mois) = Day(Range("B1"))
Else
Cells(1, 2 + mois) = DernierJourDuMois(mois, Year(Range("A1")))
End If
Next mois
End Sub
Function DernierJourDuMois(m As Integer, y As Integer) As Integer
DernierJourDuMois = Day(DateAdd("d", -1, "01/" & m + 1 & "/" & y))
End Function
Chez moi non !
le nombre de jours du premier mois (quelque soit celui ci) n'est pas bon....
Pas les yeux en face des trous 8-) Pour le 1er mois, je comptais les jours entre le 1 et la date de début au lieu de compter entre la date et la fin du mois. Honte sur moi ...
Public Sub CompteJours() Dim mDeb As Integer, mFin As Integer, mois As Integer
mDeb = Month(Range("A1")) mFin = Month(Range("B1")) For mois = 1 To 12 If mois < mDeb Or mois > mFin Then Cells(1, 2 + mois) = 0 ElseIf mois = mDeb Then Cells(1, 2 + mois) = DernierJourDuMois(mois, Year(Range("A1"))) - _ Day(Range("A1")) + 1 ElseIf mois = mFin Then Cells(1, 2 + mois) = Day(Range("B1")) Else Cells(1, 2 + mois) = DernierJourDuMois(mois, Year(Range("A1"))) End If Next mois End Sub
Function DernierJourDuMois(m As Integer, y As Integer) As Integer DernierJourDuMois = Day(DateAdd("d", -1, "01/" & m + 1 & "/" & y)) End Function
Chez moi non !
le nombre de jours du premier mois (quelque soit celui ci) n'est pas bon....