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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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,
 
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

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
 
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
 
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

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
301
Retour