× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 Problème de calcule entre 2 dates
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Emeline1989
  Posté le 15/04/2010 @ 14:35 
Aller en bas de la page 
Petite astucienne

Bonjour,

Je suis en train de créer une base de données dans un service RH. Dans cette base, j'ai 2 tables :

- une table intérimaires : matricule (clé), nom, prénom…

- une table contrats : numéro (clé), matricule, date de début, date de fin…

Pour un matricule, j'ai donc plusieurs contrats.

Je voudrais connaître pour un mois donné quels sont les matricules (donc les intérimaires) qui ont eu une coupure entre 2 contrats.

Pour ce faire, je veux calculer le nombre de jours entre la date de fin d'un contrat et la date de début du contrat suivant pour un matricule donné.

Le problème est que quand je fais : date de fin – date de début, cela me donne la durée du contrat.

Je ne sais pas comment faire en sorte que la date de fin soit d'un contrat et que la date de début soit celle du contrat suivant.

J'espère que vous me comprenez et qu'une solution existe.

Merci d'avance.

Publicité
Papalou
 Posté le 15/04/2010 à 14:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

J'espère bien avoir compris ton problème.
Tu dis qu'en faisant datefin-datedébut cela te donne la durée du contrat.

Essaies donc de faire datedebut(du contrat suivant) - datefin (du contrat précédent) : je pense que te donnera la durée entre contrats.

Tiens nous au courant.

Bonne journée.

Emeline1989
 Posté le 15/04/2010 à 15:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

C'est ce calcul que je veux faire mais je ne sais pas comment.

Le problème est que ma table se présente comme cela :

contrats

Matricule

Du

Au

65901617

25/01/2010

16/02/2010

65901600

06/01/2010

10/01/2010

65901503

15/03/2010

21/03/2010

65901503

28/12/2009

03/01/2010

65901503

04/01/2010

10/01/2010

65901503

11/01/2010

17/01/2010

65901503

01/03/2010

07/03/2010

65901503

18/01/2010

24/01/2010

65901503

15/02/2010

21/02/2010

65901503

08/03/2010

14/03/2010

Comment est ce que dans ma requête j'indique que je veux prendre la date de fin du premier et la date de début du suivant?

Papalou
 Posté le 15/04/2010 à 15:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re

Il faudrait, à priori, que ton tableau soit trié :

- par matricule et par date de début (ce qui entrainera automatiquement le tri par date de fin puique les contrats ne peuvent chevaucher).

Si plusieurs contrat par matricule, la date de début du nouveau-date de fin de l'ancien devrait te donner le nb de jours de l'inter-contrat.

Tiens-nous au courant.

Emeline1989
 Posté le 16/04/2010 à 09:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour,

Malheureusement, ta solution ne marche pas.

Quand je fais (date de début) - (date de fin), cela me donne une réponse -..., c'est à dire que ça me donne la durée d'un seul contrat mais en négatif.

Bonne journée

Notsag99
 Posté le 16/04/2010 à 19:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je voudrais connaître pour un mois donné quels sont les matricules (donc les intérimaires) qui ont eu une coupure entre 2 contrats.

Est-ce que cela veut dire que le mois de la date de fin d'un contrat DOIT ÊTRE LE MÊME que le mois du début du prochain contrat?
C-À-D: Si un contrat se termine le 20 Avril, et que le prochain contrat débute le 1er mai, alors cela ne serait pas considéré comme un coupure dans le mois d'Avril (que tu auras choisis par paramètre).

Pour ce faire, je veux calculer le nombre de jours entre la date de fin d'un contrat et la date de début du contrat suivant pour un matricule donné.

Est-ce que le nombre de jours est vraiment important? Si la date du début d'un contrat n'est pas le prochain jour ouvrable suivant la date de fin du contrat précédent, alors n'y aurait-il pas nécessairement coupure?

Emeline1989
 Posté le 16/04/2010 à 19:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour,

Nous, il faut s'agit seulement du mois de la date de fin. ce n'est pas important si le mois du début du prochain contrat n'est pas le même.

Cette solution peut me convenir pour une des requêtes que je veux faire. Je voulais faire une requête où cette solution conviendrais (si la date de début du contrat n'est pas le jour suivant, c'est bon) mais je voulais en faire une autre qui indique les arrêts de plus de 3 semaines...

Par contre, je ne comprends toujours pas comment est ce que, dans une requête, je peux indiquer que je veux que ce soit la date de début du prochain contrat et non celle du même contrat que la date de fin...

Notsag99
 Posté le 16/04/2010 à 22:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Donc, le paramètre MOIS servirait à faire une sélection de tous les contrats se terminant à ce mois.

Après, pour chacun de ces contrats, il faut calculer le nombre de jours avant de débuter le prochain contrat. Je ne crois pas qu'il soit possible de faire cela avec une requête.

Je verrais plutôt un état (rapport) qui serait basé sur la requête paramétrée ci-haut et qui se servirait d'un module VBA pour
1- Trouver le contrat suivant, à même la table des contrats.
2- Calculer le nombre de jours entre la fin du contrat de la requête paramétrée et le début du contrat identifié à l'étape précédente (1). Le résultat serait alors affiché dans l'état (rapport).

Cela demandera un certain niveau de compétence en VBA. C'est pas mal plus complexe qu'une simple requête paramétrée.



Modifié par Notsag99 le 16/04/2010 23:27
Marmotte18
 Posté le 17/04/2010 à 00:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Ci-dessous une proposition. Il serait bien de reprendre cet exemple et nous dire quelles sont les valeurs attendues.

http://www.cijoint.fr/cjlink.php?file=cj201004/cijD2tkMpz.xls

Formule mise en D2 :

=SI(ESTERREUR(SI(ET(A2=A1;MOIS(B2)=MOIS(C1);ANNEE(B2)=ANNEE(C1) );B2-C1-1;""));"";SI(ET(A2=A1;MOIS(B2)=MOIS(C1);ANNEE(B2)=ANNEE(C1) );B2-C1-1;""))

Formule mise en E2 :

=SI(A2=A1;B2-C1-1;"")


Modifié par Marmotte18 le 17/04/2010 00:19
Publicité
Mytå
 Posté le 17/04/2010 à 00:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re le forum

Marmotte, j'ai effacer une réponse similaire elle est sous le forum Access

Mytå

Marmotte18
 Posté le 17/04/2010 à 08:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour Mytå,

Merci de m'ouvrir les yeux ! Néanmoins, je pense qu'il serait bon qu'Emeline1989, donne un exemple complet avec les réponses attendues pour qu'on sache vers quoi il faut aller.

Par ailleurs, quand on est sur le "forum bureautique", il est dommage de ne pas avoir d'indicateur pour montrer dans quel sous-forum on est (Word, Excel, Acces, PowerPoint, ...). Cela oblige à regarder successivement chacun d'entre eux pour savoir à quoi se rapporte la question posée.



Modifié par Marmotte18 le 17/04/2010 09:14
rj390111
 Posté le 17/04/2010 à 12:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour à tous,

J'ajouterai qu'il faudrait aussi une précision sur la version Office utilisée.

RJ

rj390111
 Posté le 17/04/2010 à 13:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Je joins un exemple de calcul du nombre de jours entre Date_Debut et Date_Fin_Precedent

Il faut essayer et voir si cela vous convient et adapter le code à vos champs.

http://www.cijoint.fr/cjlink.php?file=cj201004/cijsTQYDw4.zip

Ce code est visible sur l'évènement Reception focus du champ Nbr_Jour_Ecart du ssForm Essai_Date

Si besoin d'explications n'hésitez pas.

RJ

rj390111
 Posté le 17/04/2010 à 13:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Comme vous n'avez pas préciser la version d'office j'envoie une version 2003 le première était 2007.

J'avais oublié de documenter le code VBA j'ai donc ajouté quelques explications.

http://www.cijoint.fr/cjlink.php?file=cj201004/cijhVs6NWw.zip

Cordialement

RJ

Emeline1989
 Posté le 19/04/2010 à 08:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour,

Désolée du retard.

Je suis désolée rj90111 mais je ne sais pas du tout travailler avec le mode VBA du coup, je ne comprends pas trop ce que tu as fais.

Sinon, je récapitule ce que je voudrais : pour un mois donné, le nombre d'intérimaires qui ont un contrat qui se termine et pas de contrat qui recommence le jour suivant.

Merci de vos réponses.

rj390111
 Posté le 19/04/2010 à 11:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Ce n'est pas vous qui travaillez avec VBA mais VBA qui travaille pour vous.

Avez-vous un message d'erreur dans ce que je vous ai envoyer?

Vous n'aurez pas d'autre solution que de passer par VBA pour faire ce que vous voulez.

RJ

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
329 €Ecran PC 27 pouces Dell S2719DGF (WQHD, 155 Hz, 1 ms, FreeSync) à 329 €
Valable jusqu'au 14 Juillet

Amazon fait une promotion sur l'écran PC 27 pouces Dell S2719DGF qui passe à 329 € au lieu de plus de 400 € ailleurs. L'écran à cadre fin dispose d'une dalle TN WQHD (2560x1440 pixels) 1 ms à 155 Hz. Il est compatible Freezync (Gsync via Adaptive Sync) et dispose de 4 prises USB (fait office de hub) et de 2 prises HDMI. Garantie 3 ans.


> Voir l'offre
144,80 €Mini PC Acute Angle AA-B4 (Celeron N3450, 8Go RAM, 64Go+SSD 128Go) à 144,80 € avec le code GBCNSJXPC
Valable jusqu'au 11 Juillet

Gearbest fait une promotion sur l'ordinateur Acute Angle AA - B4 qui passe à 144,80 € au lieu de 180 € grâce au code promo GBCNSJXPC. Ce mini PC au design atypique et au corps en bois, intègre un processeur Intel Celeron N3450 (4 coeurs de 1,1 à 2,2 GHz), 8 Go de RAM, un espace de stockage de 64 Go EMMC ainsi qu'un SSD de 128 Go. Il possède également le WiFi5, le Bluetooth 5.0, une prise Ethernet Gigabit, 3 ports USB 3.0, une sortie HDMI. L'ordinateur est livré avec une prise électrique européenne. Il est accompagné de Windows 10 Familial. Avec ce PC, vous pourrez réaliser sans soucis toutes vos tâches courantes : internet, bureautique, multimédia.

Ce marchand sérieux se trouvant en Chine, la livraison peut prendre une quinzaine de jours. Comptez une dizaine d'euros pour la livraison en France et l'assurance pour le transport. Vous pouvez payer par carte bancaire ou par Paypal (conseillé pour bénéficier de la garantie Paypal).


> Voir l'offre
22,17 €Souris sans fil Logitech M280 à 22,17 €
Valable jusqu'au 12 Juillet

Amazon fait une petite promotion sur la souris sans fil Logitech M280 qui passe à 22,17 €. On la trouve ailleurs à partir de 30 €. Sa forme profilée est adaptée aux droitiers. Son autonomie est de 18 mois (pile AA que vous pourrez remplacer).


> Voir l'offre

Sujets relatifs
Calcul avec excel entre 2 dates sur plusiuers années
Problème d'espacements entre cacarctères sur works
Problème de format dates
formule pour calcul entre dates
Difference entre deux dates
Problème de mails entre SFR et Outlook 2007
excel 2007 calculer la différence entre deux dates
Formule pour calculer l'écart entre deux dates
Calcul entre 2 dates avec monthview
Problème de Dates
Plus de sujets relatifs à Problème de calcule entre 2 dates
 > Tous les forums > Forum Bureautique