Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Nombre de jours du mois. [ Archives Visual Basic / VBA ] (alikote)

vendredi 5 août 2005 à 22:42:14 | Nombre de jours du mois.

alikote

Je vous salue tous,

Voilà j'aime écrire des choses en VBA (Excel et/ou Word). J'ai besoin d'une procédure (ou méthode) ou fonction qui puisse me dire exactement le nombre de jours dans un certain mois d'une certaine année. J'en ai besoin dans une macro Excel.

Quelqu'un a du se frotter déjà à ce problème, j'en suis presque sûre.

Merci de votre réaction.


vendredi 5 août 2005 à 23:00:27 | Re : Nombre de jours du mois.

Gobillot

    Dim année As Integer
    Dim mois  As Integer
   
    mois = 8
    année = 2005

    MsgBox (DateSerial(année, mois + 1, 1) - DateSerial(année, mois, 1))


Daniel

vendredi 5 août 2005 à 23:07:17 | Re : Nombre de jours du mois.

frop01

Membre Club
Voici 4 fonctions qui permettent de connaître le nombre de jours d'un mois. A vous de choisir celle qui vous convient le mieux :


Public Function DaysInMonth(ByVal nMonth As Integer, ByVal nYear As Integer) As Integer

    DaysInMonth = Day(DateAdd("d", -1, DateAdd("m", 1, DateSerial(nYear, nMonth, 1))))

End Function

Public Function DaysInMonth(ByVal nMonth As Integer, ByVal nYear As Integer) As Integer

    DaysInMonth = Day(DateSerial(nYear, nMonth + 1, 0))

End Function

Public Function DaysInMonth(ByVal nMonth As Integer, ByVal nYear As Integer) As Integer

    If nMonth = 12 Then
        DaysInMonth = Day(DateSerial(nYear + 1, 1, 1) - 1)
    Else
        DaysInMonth = Day(DateSerial(nYear, nMonth + 1, 1) - 1)
    End If

End Function

Public Function DaysInMonth(ByVal nMonth As Long, ByVal nYear As Long) As Long

    Select Case nMonth
        Case 2
            If isLeapYear(nYear) Then
                DaysInMonth = 29
            Else
                DaysInMonth = 28
            End If
        Case 4, 6, 9, 11
            DaysInMonth = 30
        Case Else
            DaysInMonth = 31
    End Select

End Function


*************
bibliographie : http://faq.vb.free.fr/index.php?question=84
PS: Si votre problème est résolu, prière de bien vouloir clôturer votre message par une réponse acceptée !

vendredi 5 août 2005 à 23:08:59 | Re : Nombre de jours du mois.

dragon

la bonne vieille méthode. Marche toujours, n'importe quel année, n'importe quel mois, bisextile ou non

public function nbJourMois(mois as integer, annee as integer) as integer
   return nbJourMois(mois,annee,31)
end function

private function nbJourMois(mois as integer, annee as integer, jour as integer) as integer
   on error goto erreur
   dim test as date
   test = annee & "-" & mois & "-" & jour
   nbJourMois = jour
   exit function
erreur:
   nbJourMois = nbJourMois(mois,annee,jour-1)
end function

-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------


vendredi 5 août 2005 à 23:26:18 | Re : Nombre de jours du mois.

jack

Administrateur CodeS-SourceS

Salut
Oui, en effet, c'est excellent cette idée Dragon.
Il y a aussi la méthode qui consiste à regarder le n° du jour qui précède le 1er jour du mois suivant.

Je crois que c'est ce que propose Gollibot, Gobillot, pardon

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
(je


vendredi 5 août 2005 à 23:47:02 | Re : Nombre de jours du mois.

dragon

l'avantage de ma version, c,est qu'elle peut-être adapter dasn tout les languages. Une date fausse va nécessairement planter. donc si on ajoute la gestion d'erreur avec un on error en vb6.0 ou un try/catch en .net, ca va toujours fonctionner. Mais c,est pas comme qui dirait très propre comme code.

j'ai jamais tester voir si c'était plus rapide par contre. Faudrait tester la solution de  drop01 et la mienne genre 100000 fois voir la différence en temps. Par contre, pour un débutant, ma façon est beaucoup plus simple a comprendre, malgré qu'elle soit récurcive (la fonction s'appelle elle même, jusqu'à ce qu'elle aille trouver la bonne réponse)

-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------


samedi 6 août 2005 à 12:15:37 | Re : Nombre de jours du mois.

alikote

Re-bonjour chers amis,

Merci à vous tous qui avez réagi à ma requête, merci aussi à ceux qui en avaient l'intention. J'ai testé toutes les réponses sur le mois de fév-2005. Elles ont toutes donné la bonne réponse à l'exception de la dernière fonction de frop01. Là j'ai le message qui indique que la fonction isLeapYear(nYear) n'est pas définie. Je pense que cette fonction n'est pas connue de Excel VBA et qu'il faut l'écrire.

Encore merci, la question peut-être close sauf si quelqu'un (en l'occurrence frop01) veut revoir le problème de la fonction isLeapYear(nYear).

Connaître, connaître; toujours connaître, mieux et plus, pour soi et les autres !!!
Ali C. KOTE

samedi 6 août 2005 à 13:51:22 | Re : Nombre de jours du mois.

frop01

Membre Club

j'avais dit 4 fonctions et j'ai pas mis la fontion IsLeapYear.

Sinon pour cette fonction que tu doit la déclarer !! 
elle retourne si l'année est bisextile ou non !

peut-etre parcequ'elle manque la valeur de retour (As Boolean):

Public Function isLeapYear(ByVal nYear As Long) As Boolean

    isLeapYear = ((nYear Mod 4 = 0) And (nYear Mod 100 <> 0)) Or (nYear Mod 400 = 0)

End Function
PS: Si votre problème est résolu, prière de bien vouloir clôturer votre message par une réponse acceptée !

lundi 8 août 2005 à 19:51:21 | Re : Nombre de jours du mois.

alikote

Bonjour,

Je reviens pour cette fois demander ceci:

Je veux créer un fichier d'aide pour une petite application que j'ai écrite en VBA (Excel). J'aimerais avoir une idée de la structure d'un tel fichier et comment je peux y faire référenc à partir de mon application.

Connaître, connaître; toujours connaître, mieux et plus, pour soi et pour les autres !!!
Ali C. KOTE




Cette discussion est classé dans : nombre, excel, mois, jours


Répondre à ce message

Sujets en rapport avec ce message

nombre d'années de mois et jours entre 2 dates [ par FloZix ] J'ai besoin de faire un prog qui calcul le nbre d'années de mois et de jours qu'il y a entre deux dates mais je ne sais pas comment faire.J'attend vot Date (inversion des jours et des mois) [ par clamor ] Salut,   Voilà mon pb. J’essai de faire un prog sur VBA. J’ai dans Convertir nombre de jours en année, mois et jours [ par mehdiyou ] salut tout le monde y'aurai t il quelqu'un qui pourrait me donner une fonction qui permet de convertir un nombre de jours en année,mois et jour.(Exp: Fonction Pair en vb [ par tortuegenie ] Bonjour à tous,j' ai un tout petit souciJ'utilise Excel et vb pour un programme.Dans Excel il existe une fonction PAIR(nombre) qui arrondit un nombre excel format nombre et format texte [ par chaudier37 ] bonjour,quelle est la syntaxe vba pour convertir un nombre texte en nombre ? ex : tva. écrit par vba dans un tableau excel qui se met en texte et non sauvegarde le premier du mois vba excel [ par bakalai ] Bonjour,   Je cherche a effectuer une sauvegarde d'un fichier excel dans un nouveau repertoire et aves un nouveau nom tous les prmiers du mois.J'ai pu Renomer une XLA [ par ccartier ] SalutD'un cote, j'ai une grand nombre de feuilles Excel qui dependent d'une xla, MyApp1.xla. D'un autre cote, j'ai un autre grand nombre de feuilles E Erreur 1004 VB [ par ptitelili059 ] Bonsoir à tousVoilà j'ai un petit programme qui me liste tous le contenu de ma colonne mais quand je lance le programme, j'ai l'erreur suivante : "Err problème sur format cellule excel [ par eastpeople ] Bonjour à tous, mon problème est que dans un userform je demande d'entré un nombre numérique dans un txtbox cette valeur va ensuite se mettre dans une Nombre de valeur identique dans un champ [ par grantourismo ] Bonjour,Dans une macro Excel, je voudrais compter le nombre de cellules identiques à une autre dans un champ.Dans Excel cette fonction est nb.si(a1:a2


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.