Function avec dates

  • Initiateur de la discussion Blafi
  • Date de début
B

Blafi

Guest
Re-Bonlour aux forumeurs...

Pour faire suite à ma demande pour savoir comment calculer le nombre de jours d'un mois en fonction d'une date à laquelle Monique a répondu avec célérité, j'ai essayé d'écrire une fonction telle que ci-dessous :

Function JoursMois(Madate)

JoursMois = DAY(DATE(YEAR(Madate),MONTH(Madate)+1,0))

End Function

En voulant utiliser cette fonction, j'obtiens bien la fenêtre me demandant de rentrer 'Madate' que je désigne alors en cliquant sur 'A1' qui contient une date au format français.
A partir de là je suis renvoyé dans mon code VBA avec une 'erreur 1004 : erreur définie par l'application ou par l'objet '.

Pouvez vous me dire ce qui cloche dans mon code ?
Est-ce le format de date français qui pose un problème à VBA car j'obtiens exactement le même message d'erreur en écrivant une macro qui insère la même formule que ci-dessus; sachant que j'ai enregistré cette macro en entrant la formule voulue dans une cellue excel (=JOUR(DATE(ANNEE(A1);MOIS(A1)+1;0)).

Merci d'avance aux champions d'excel qui pourront m'aider...
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour

voici un exemple de fonction VBA

Code:
Function JoursMois(Madate)
Dim Date_Temp As Date
Date_Temp = DateValue(DateValue('01/' & Month(Madate) & '/' & Year(Madate)) + 31)
JoursMois = Day(DateValue(DateValue('01/' & Month(Date_Temp) & '/' & Year(Date_Temp))) - 1)
End Function

Cordialement, A+
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re bonjour

la même en 1 ligne

Code:
Function JoursMois(Madate)
JoursMois = Day(DateValue(DateValue('01/' & Month(DateValue('01/' & Month(Madate) & '/' & Year(Madate)) + 31) _
& '/' & Year(DateValue('01/' & Month(Madate) & '/' & Year(Madate)) + 31))) - 1)
End Function

A+
 

Dugenou

XLDnaute Barbatruc
yeahou,

ben j'en sait rien de se qui se passe : j'ai pris le code de la question, je l'ai tapé chez moi, j'ai cherché dans l'explorateur d'objet un fonction date qui fonctionne et chez moi ça marche comme ça ! (excel 2002)

mais je n'y connais rien de rien, j'étais content de pouvoir aider.
et tu as raison décembre +1 ça va faire désordre !
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour

c'est bizarre, je suis aussi en 2002, je re essaye.
Ben si cela fonctionne, j'avais du faire une fausse manip.
Pour ce qui est de décembre, cela se passe trés bien aussi.
Ta solution est donc tout aussi bonne, Mea maxima culpa.

Cordialement, A+
 

Discussions similaires

Statistiques des forums

Discussions
313 090
Messages
2 095 171
Membres
106 199
dernier inscrit
freeman74