calcul Nb jours

  • Initiateur de la discussion wafa
  • Date de début
W

wafa

Guest
salut atous le monde






comment je peux programmer un macro ou une fonction Excel qui permet de calculer le nombre de jours entre de deux dates tel que :
le dernier jours de le premier mois est (30 ou 31 ou 28 ou 29) et le dernier jours des autrs mois est 30
si le premier jours de premier mois est 01 donc le nombre de jours de la premier mois est 30 est les autres aussi 30 jours .
et si le premier jours de premier mois est 01 et le dernier jours de derniers mois est (31 ou 30 ou 28 ou 29) dans ce cas il va calculer le nombre de mois


par exemple :

du 01/01/2003 au 30/06/2003 renvois 6 mois

du 05/01/2003 au 30/06/2003 renvois 177 jours

du 31/01/2003 au 30/06/2003 renvois 151 jours

du 02/01/2003 au 31/12/2004 renvois 719 jours
du 01/01/2003 au 31/12/2004 renvois 12 mois





et merci d'avance
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir wafa,

Si j'ai bien compris le problème, tu peux utiliser cette fonction personnalisée dans la feuille :
Public Function Ecart(DateDeb As Date, DateFin As Date) As String
Dim
D As Long
      D = DateDiff('m', DateDeb, DateFin) + 1
      If Day(DateDeb) > 1 Or DateAdd('m', D, DateDeb) - 1 <> DateFin Then
            D = DateDiff('d', DateDeb, DateFin)
            Ecart = D & ' jours'
      Else
            Ecart = D & ' mois'
      End If
End Function
Par exemple : [ol][ul][li]en A1 : '01/01/03'[/li]
[li]en B1 : '31/12/04'[/li]
[li]en C1 la formule : '= Ecart(A1;B1) donnera 24 mois (et non pas 12 comme dans ton exemple... ;) )[/li][/ul][/ol]
Cordialement,
 

Celeda

XLDnaute Barbatruc
Bonsoir,


quand la macro rencontre la formule!!! :) :)

sacré dateif!!!

à comprendre pourquoi l'écart (c'est le cas de le dire)

lequel est le plus précis et pourquoi ? surtout :whistle:

bisous mdf



Ici, wafa, tu as dans le fichier les formules et en bleu la Macro de mdf.
IL faut la placer dans un module et elle vient se placer directement dans tes fonctions pesonnalisées. Tu peux l'appeler par les fonctions.
Dans les lignes du dessus, tu as des formules en mois, jours, années et concaténées.


Celeda [file name=Calculejour_20050524234652.zip size=4705]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Calculejour_20050524234652.zip[/file]
 

Pièces jointes

  • Calculejour_20050524234652.zip
    4.6 KB · Affichages: 60

Celeda

XLDnaute Barbatruc
Bonjour,

Wafa, les posts sont très précieux (surtout quand le compte à rebours à commencer) alors qu'est-ce qui ne fonctionne pas.

On ne peut pas écrire 'fonctionne pas' et pas dire Quoi ?

Il faut donner des explications sinon comment veux-tu que l'on puisse t'aider plus?

La macro de mdF marche au poil alors ? est-ce dans les formules ?


Celeda

Message édité par: Celeda, à: 25/05/2005 06:29
 
W

wafa

Guest
merci à myDearFriend,Celeda
la solution de myDearFriend a bien fonctionné mais le probleme c'est que le premier jours n'entre pas dans le calcule
j'ai fais une instruction qui permet de calculer les jours mais il ne depasse pas une annee.
je veux le developer pour qu'il soit utile pour plusieurs annees..et merci pour votres efforts
 

wafa

XLDnaute Nouveau
voila le fichier d'exemple [file name=Exemple_20050525220646.zip size=1857]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_20050525220646.zip[/file]
 

Pièces jointes

  • Exemple_20050525220646.zip
    1.8 KB · Affichages: 39

Celeda

XLDnaute Barbatruc
Bonsoir,

Bon on reprend tout depuis le début :

j'ai appliqué la macro Ecart et elle retourne bien le resultat escompté.

La formule DateIf, elle, donne 1 jour de différence : je me suis mise en chasse pour comprendre pourquoi -(nous avions déjà noté cette situation au moment de DEH donc phénomène connu mais pas encore expliqué)

Cette partie étant réglée, considère que cela soit Ecart ou DateIf, c'est kifkif on obtient le même résultat.

Il apparaît donc que tu peux appliquer cela pour automatiser tes calculs.


Par contre, ce que je ne comprends pas très bien c'est ta deuxième formule : que cherches-tu à faire, SVP ?


Celeda [file name=NbdejoursV01.zip size=7003]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/NbdejoursV01.zip[/file]

Message édité par: Celeda, à: 25/05/2005 22:31

Message édité par: Celeda, à: 25/05/2005 22:32
 

Pièces jointes

  • NbdejoursV01.zip
    6.8 KB · Affichages: 57
W

wafa

Guest
l'exemple que j'ai proposé fonctionne bien que la fonction Ecart. ce que je veux obtenir c'est que le premier jour et le dernier soient inclus dans le résultat. par exemple : de 02/01/2005 à 31/01/2005 je voudrais obtenir 30 jours (31-02)+1
d'autre part si on a plusieurs mois le programme doit compter tous les jours du premier mois et considère les mois suivants pour 30 jours. par exemple: de 02/01/2005 à 30/06/2005, le resultat doit être 180 jours. si le premier mois commence par le premier jour le résultat doit être en mois, par exemple: de 01/01/2005 à 30/06/2005 on doit obtenir 06 mois.
par ailleur le programme que j'ai fait fonctionn bien pour une période d'une année. pour une période d'une année + un jour, le programme dérappe. [file name=Exemple_20050525224747.zip size=1857]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_20050525224747.zip[/file]
 

Pièces jointes

  • Exemple_20050525224747.zip
    1.8 KB · Affichages: 34

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 424
Membres
103 206
dernier inscrit
diambote