Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/09/2011, 01h31   #1
Nouveau Membre du Club
 
Homme
Consultant en sécurité
Inscription : juillet 2011
Messages : 75
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Santé

Informations forums :
Inscription : juillet 2011
Messages : 75
Points : 33
Points : 33
Par défaut Déterminer le nombre de jours pour chaque année fiscale, entre deux dates données

Bonjour à vous,

J'essaye de trouver une fonction ou une macro qui pourrait me calculer le nombre de jours contenu dans différentes "années fiscale" pour exprimer clairement ma recherche j'ai énoncé un exemple ci bas,
J'ai défini des années fiscales, et lorsque je choisi une période qui chevauche plusieurs années je souhaiterai déterminer le nombre de jours pour chaque année fiscale.

J'ai débuté par un code sur VBA avec des boucles If et For, mais c'est terrible....pourtant dans ma tête tout est clair!!!!

Merci de votre aide,


Années Fiscales 	Début 	        Fin 	
     2010	        04/01/2009	3/31/2010	
     2011	        04/01/2010	3/31/2011	
     2012	        04/01/2011	3/31/2012	
     2013	        04/01/2012	3/31/2013	
     2014	        04/01/2013	3/31/2014	
     2015	        04/01/2014	3/31/2015	
     2016	        04/01/2015	3/31/2016
Exemple de Période:
Début         Fin          nombre de jour total
08/18/2011    3/22/2015    Datedif(début,fin,"d")
Quel est le nombre de jours dans chaque année fiscale?
mikeactuaire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 02h07   #2
Membre habitué
 
Inscription : mai 2007
Messages : 106
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : mai 2007
Messages : 106
Points : 128
Points : 128
Salut le forum

Avec les cellules suivantes :
Code :
1
2
3
4
5
6
 
A2=2010
B2=04/02/2009
C2=03/31/2010
 
En D2 =DATEDIF(MAX(DATE(A2;1;1);B2);MIN(DATE(A2;12;31);C2);"d")+1
Mytå_Qc
Mytå_Qc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/09/2011, 02h50   #3
Nouveau Membre du Club
 
Homme
Consultant en sécurité
Inscription : juillet 2011
Messages : 75
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Santé

Informations forums :
Inscription : juillet 2011
Messages : 75
Points : 33
Points : 33
Merci pour ton aide,

Mais je cherche en fait le nombre de jour pour des dates qui chevauchent différentes années, là est la difficulté.........



Pour reprendre l'exemple:

Exemple de Période:

Début 08/18/2011 Fin 3/22/2015

nombre de jour total je le calcul de cette facon : Datedif(début,fin,"d")

Mais si je souhaite connaitre le nombre de jours dans chaque année fiscale?
C'est à dire entre le

04/01/2010 et le 3/31/2011 on va avoir "x" jours

2012 04/01/2011 3/31/2012 on va avoir 365 jours

2013 04/01/2012 3/31/2013 on va avoir 365 jours

2014 04/01/2013 3/31/2014 on va avoir 365 jours

2015 04/01/2014 3/31/2015 on va avoir 357



En fait, quel va être le nombre de jours dans chaque année fiscale?



Merci à vous,
mikeactuaire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 22h30   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
toujours pas clair la demande ... pourquoi dateDiff voir aide en ligne

ne te conviens pas ?



Citation:
2015 04/01/2014 3/31/2015 on va avoir 357
pourquoi 357?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 03h05   #5
Nouveau Membre du Club
 
Homme
Consultant en sécurité
Inscription : juillet 2011
Messages : 75
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Santé

Informations forums :
Inscription : juillet 2011
Messages : 75
Points : 33
Points : 33
BOnsoir à vous,

Je reprends le tout:


L'année fiscale débute le premier du mois d'avril et se termine le 31 du mois de mars. Il est important de noter que le nom donné à cette année fiscale est l'année la plus grande.
Ex: l'année fiscale 2011 est en fait du 01/04/2010 au 31/3/2011.

maintenant si je cherche le nombre de jour entre le 01/04/2010 au 20/05/2011contenu dans les années fiscales 2010 et 2011 je vais obtenir:
365 jours pour 2010 et 50 jours pour 2011.

J'espère que quelqu'un m'a compris,
Merci quand même Mytå_Qc, si tu as l'occasion , n'hesite pas à faire un copié collé par message<(:~))

A+
mikeactuaire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 11h07   #6
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
Bonjour,

Essaie avec ce code VBA

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Option Explicit
Private Sub Test()
Dim AnFisc As String
Dim Message, Title, Default, MyValue
Dim DateDebut1 As String, DateDebut2 As String, DateFin1 As String, DateFin2 As String
Dim NbJours1 As Integer, NbJours2 As Integer
    On Error GoTo errorHandler
    ' Définit le message
    Message = "Entrez l'année fiscale "
    ' Définit le titre
    Title = "Recherche du nombre de jours d'une année fiscale"
    Default = Year(Now)    ' Définition la valeur par défaut.
    ' Affiche le message, le titre et la valeur par défaut.
    AnFisc = InputBox(Message, Title, Default)
    'Première période (année N-1)
    DateDebut1 = CDate("1/04/" & (AnFisc - 1))
    DateFin1 = CDate("31/12/" & (AnFisc - 1))
    NbJours1 = DateDiff("d", DateDebut1, DateFin1) + 1
    'Deuxième période (année N)
    DateDebut2 = CDate("01/01/" & AnFisc)
    DateFin2 = CDate("31/03/" & AnFisc)
    NbJours2 = DateDiff("d", DateDebut2, DateFin2) + 1
    'Affichage du résultat
    MsgBox "Année fiscale " & AnFisc & Chr(10) & _
    "Nombre de jours en " & AnFisc - 1 & " : " & NbJours1 & Chr(10) & _
    "Nombre de jours en " & AnFisc & " : " & NbJours2 & Chr(10) & _
    "Nombre de jours total : " & NbJours1 + NbJours2
    Exit Sub
errorHandler:
    'indique le numéro et la description de l'erreur survenue
    MsgBox Err.Number & vbLf & Err.Description
End Sub
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/09/2011, 12h42   #7
Membre habitué
 
Inscription : mai 2007
Messages : 106
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : mai 2007
Messages : 106
Points : 128
Points : 128
Re le forum

Par formule ça donnerait ceci

Période Date_1 en C6 : 2011-08-18
Période Date_2 en D6 : 2015-03-22

De B7 à D13 les valeurs
2010	2009-04-01	2010-03-31
2011	2010-04-01	2011-03-31
2012	2011-04-01	2012-03-31
2013	2012-04-01	2013-03-31
2014	2013-04-01	2014-03-31
2015	2014-04-01	2015-03-31
2016	2015-04-01	2016-03-31
La formule en E7 à recopier vers le bas pour le nombre de jours par année fiscale
Code :
=MAX(0;MIN(D$6;D7)-MAX(C$6;C7)+1)*(C7*D7>0)
Mytå_Qc
Mytå_Qc est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h31.


 
 
 
 
Partenaires

Hébergement Web