Formule dernier jour du mois

Darnel

XLDnaute Impliqué
Bonjour,

J'ai un soucis avec une formule que je ne parvien pas à trouver :

Le principe :
J'extrait le nom d'un classeur dans une cellule

Le nom du classeur se termine par 2 nombres, le premier représente l'année, le second, le mois

J'isole par formule ces 2 nombres et les remets dans l'ordre avec un / entre eux

Jusque là, tout va bien

Mais à présent, je voudrai trouver une formule qui me place le dernier jour du mois devant le résultat obtenu : pour etre clair: voici un exemple :

Nom du classeur renvoyé dans une cellule (B1): essai_xld_0610.xls
extraction du mois et de l'année par une formule :
=(GAUCHE(DROITE(B1;6);2))&"/"&(GAUCHE(DROITE(B1;8);2))
résultat affiché par la formule : 10/06 : Jusque là tout va bien pour moi ;)

Maintenant, ce que je voudrai : soit une formule complète qui m'affiche :
31/10/06 (31 car dernier jour d'octobre, mais si autre il faut 30 ou 28 ou 29 ...:p )
soit une formule qui me permette d'obtenir le dernier jour du mois dans une autre cellule (ici 31 car octobre, mais si février : 29 ou 28 selon l'année, ou encore, si avril 30) et ensuite je concatene tout ca en un.
Si quelqu'un à une solution.
 

Tibo

XLDnaute Barbatruc
Re : Formule dernier jour du mois

Salut Darnel,

Une formule pour avoir le dernier jour du mois précédent :

en A1 : une date

en B1 :

=JOUR(DATE(ANNEE(A1);MOIS(A1);0))

au format standard

à intégrer dans ta formule.


@+
 

chasseur44

XLDnaute Occasionnel
Re : Formule dernier jour du mois

Utilise la fonction FIN.MOIS(TaDate;0) le 0 correspond au mois en cours de taDate (si 1 alors un mois de décalage et ainsi de suite)
Mais avant il faut que les cases utilitaires d'Analyse Vba et Utilitaire d'analyse des macros complémentaires soient cochés
 

Darnel

XLDnaute Impliqué
Re : Formule dernier jour du mois

Bonjour

Merci à vous

Tibo, j'obtient ce que je veux avec ta formule qui incorporée dans la mienne donne :

=JOUR(DATE(ANNEE("01/"&(GAUCHE(DROITE(B89;6);2))&"/"&(GAUCHE(DROITE(B89;8);2)));MOIS("01/"&(GAUCHE(DROITE(B89;6);2))&"/"&(GAUCHE(DROITE(B89;8);2)));0))&"/"&(GAUCHE(DROITE(B89;6);2))&"/"&(GAUCHE(DROITE(B89;8);2))

Pascal, ta solution est magique également, mais là, je ne la comprend plus vraiment
Le +2000 et les 1 et -1 à la fin, à quoi servent ils?
Merci à vous deux pour vos réponses
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Formule dernier jour du mois

re

=DATE((GAUCHE(DROITE(B1;8);2))+2000;(GAUCHE(DROITE (B1;6);2))+1;1)-1

j'ai repris tes formules

(GAUCHE(DROITE(B1;8);2)) te donne 06 donc j'ajoute 2000 pour avoir l'année 2006

(GAUCHE(DROITE (B1;6);2)) me donne le mois et j'ajoute +1 pour avoir le mois suivant

donc
=DATE((GAUCHE(DROITE(B1;8);2))+2000;(GAUCHE(DROITE (B1;6);2))+1;1)

me donne la date du premier jour du mois suivant
je n'ai plus qu'à faire -1 pour avoir le dernier jour du mois

Bon courage
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Formule dernier jour du mois

Re

Non josé ça marche aussi pour décembre

avec date il comprend quand tu dépasses 12 qu'il faut ajouter 1 an

tu peux meme ajouter +24 au mois et il rajoutera 2 ans pas de problème

C'est magique !!!! :eek:

Bonne journée à toi
 

pierrejean

XLDnaute Barbatruc
Re : Formule dernier jour du mois

bonjour à tous

rien que pour le fun

(et pour embeter un peu les formulistes)

une fonction personnalisée

Code:
Function derjour(mois As Variant, an As Variant)
Dim d As Date
d = CDate("26" & "/" & CStr(mois) & "/" & CStr(an))
For n = 26 To 31
d = d + 1
If Month(d) <> mois Then
derjour = n
Exit For
Else
derjour = 31
End If
Next n
End Function
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Formule dernier jour du mois

Re

Pierrejean en un peu plus court car la même chose qu'en formule

Code:
Function derjour(mois As Variant, an As Variant)
derjour = Day(DateAdd("m", 1, DateSerial(an, mois, 1)) - 1)
End Function

Bonne journée
 

Foufoudora

XLDnaute Occasionnel
Re : Formule dernier jour du mois

Bonjour le fil,
excusez moi pour cette intrusion,

mais j'ai besoin d'un petit renseignement
cette fonction m'interesse
Où je dois placer cette fonction et comment la faire fonctionner
merci pascal et Pierrejean

Cordialement

Foufoudora
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Formule dernier jour du mois

Re

Euh franchemetn c'était pour rire car là la formule fait plus que l'affaire

si vraiment tu veux et bien il faut que tu copies la formule dans un module de ton classeur et ensuite tu appelles ta fonc avec fx elle apparait dans la liste
 

Foufoudora

XLDnaute Occasionnel
Re : Formule dernier jour du mois

Salut Pascal,
j'ai suivi tes conseils mais malheureusement ca na marche pas il me donne # Valeur
fichier joint

Foufoudora
 

Pièces jointes

  • Classeur1.xls
    16 KB · Affichages: 104
  • Classeur1.xls
    16 KB · Affichages: 105
  • Classeur1.xls
    16 KB · Affichages: 105

Statistiques des forums

Discussions
314 017
Messages
2 104 581
Membres
109 081
dernier inscrit
Vio21