Bonjour à tous,
je souhaite récupérer le nombre de jours pour un mois et une année donnés et ajouter la date du 1er jour au dernier dans une feuille excel...
Merci d'avance...
Bonjour à tous,
je souhaite récupérer le nombre de jours pour un mois et une année donnés et ajouter la date du 1er jour au dernier dans une feuille excel...
Merci d'avance...
Zeb'...
Salut
par formule de feuille
si tu mets une date en A1
en b1=FIN.MOIS(A1;0)-FIN.MOIS(A1;-1)
pas besoin de VBA pour ça
Daranc
Merci de ta réponse, mais c'est dans un code VBA que j'ai besoin de cette chose-là
En fait, il me faut absolument le dernier jour du mois quelque soit le mois et l'année donnés en paramètres.
Je voulais faire une fonction renvoyant le nombre de jour d'un mois afin de pouvoir ensuite mettre en place une boucle
(Ps : Je n'arrive pas à utiliser l'exemple que tu donnes en VBA ; je n'arrive pas à l'adapter en VBA...)
Zeb'...
Merci pour tout, mais j'ai fini par trouver.
Voici la solution :
Voili, voilou...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 WDernierJourDuMois = CDate("01/" & WMois & "/" & WAnnee) WDernierJourDuMois = DateAdd("d", -1, WDernierJourDuMois) WDernierJourDuMois = Day(WDernierJourDuMois)
Zeb'...
Salut en triant mes abonnements
je pense qu'il y a une petite erreur sur la prmière ligne de ta formule pour le mois il faut +1 ( à moins que lors de la récupération tu ais déjà incrémenter Wmois)
Daranc
Vous pouvez aussi utiliser une formule plus simple si vous n'avez pas besoin de macro:
Code : Sélectionner tout - Visualiser dans une fenêtre à part =JOUR(FIN.MOIS(A1;0))
Salut, pour info, une de plus parmi une myriade
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Option Explicit Function NB_JOURS(ddate As Date) As Long NB_JOURS = Day(DateSerial(Year(ddate), Month(ddate) + 1, 1) - 1) End Function
re
le jour 0 d'un mois c' est le dernier jour du mois précèdent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub test() MsgBox NB_JOURS("25/08/2017") End Sub Function NB_JOURS(Ldate As Date) As Long NB_JOURS = Day(DateSerial(Year(Ldate), Month(Ldate) + 1, 0)) End Function
je sais c'est rigolo
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Bonjour Patrick
Rigolo, non. Tout simplement très logique, 0 étant égal à 1 - 1le jour 0 d'un mois c' est le dernier jour du mois précèdent
je sais c'est rigolo
ainsi et toujours dans la même logique absolue de DateSerial :
pour l'avant-veille du dernier jour du moisDay(DateSerial(Year(Ldate), Month(Ldate) + 1, -2))
EDIT : bien la comprendre, cette logique --->>
Elle n'est pas :
Mais
Code : Sélectionner tout - Visualiser dans une fenêtre à part DateSerial(un_millésime, un_mois, un_jour)
Pour être plus précis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part DateSerial(un_compteur_d'années, un_compteur_de_mois, un_compteur_de_jours)
- le "compteur_d'années" est tout simplement le nombre de jours écoulés depuis une origine jusqu'au dernier jour de l'année antérieure
- le "compteur_de_mois" est tout simplement le nombre de jours écoulés depuis le 1er janvier de l'année
- le compteur_de_jours est déjà en jours (il peut être négatif, positif, ou 0)
Le résultat est l'addition des trois (la date interne, donc l'écart par rapport à l'origine)
Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .
****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...
Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.
Bonjour,
La fonction VBA DateSerial renvoyant la même valeur que la fonction native d'excel DATE en fonction des arguments passés
renverra le dernier jour du mois précédent et
Code : Sélectionner tout - Visualiser dans une fenêtre à part =DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI());0)
renverra le dernier jour du mois en cours.
Code : Sélectionner tout - Visualiser dans une fenêtre à part =DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())+1;0)
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Bonjour Philippe
Tout-à-fait ...
En outre : relire la demande :
Elle aurait eu sa place dans la section Excel, avec une solution totalement Excel, de A à Z, pour tous les jours d'un mois d'une année.je souhaite récupérer le nombre de jours pour un mois et une année donnés et ajouter la date du 1er jour au dernier dans une feuille excel...
Mais comme (trop) souvent -->> l'impulsivité a régné après lecture en diagonale
Amitiés
Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .
****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...
Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.
Bonjour à tous,
Quel feu d'artifice pour le 10e anniversaire de cette question ! :-)
eric
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager