× 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
20,99 €Micro clé USB 3.1 Sandisk Ultra Fit 128 Go à 20,99 €
Valable jusqu'au 12 Juillet

Amazon fait une promotion sur la micro clé USB Sandisk Ultra Fit d'une capacité de 128 Go qui passe à 20,99 €. La minuscule taille de cette clé USB va vous permettre de la laisser brancher en permanence sur votre portable, votre TV ou votre autoradio sans qu'elle dépasse de manière disgracieuse. Sa compatibilité USB 3.1 lui permet d'atteindre des débits jusqu'à 130 Mo/s. 


> Voir l'offre
14,90 €Windows 10 Pro 32/64 bits OEM à 14,90 €
Valable jusqu'au 10 Juillet

Le vendeur sérieux DIGITAL FR propose sur Amazon  la clé d'activation pour Windows 10 professionnel en français 32 bits / 64 bits à 14,90 €. Cette clé livrée par email fonctionne avec l'outil d'installation et de création de support de Microsoft que vous pouvez télécharger ici ou directement avec l'ISO de Windows 10 Pro. De quoi installer légalement Windows 10 Pro sur un PC. Pour en savoir plus sur l'achat et l'installation d'une clé OEM de Windows 10, suivez les indications de notre dossier pratique.


> Voir l'offre
29,99 €Clavier sans fil Logitech Wireless Desktop K400 Plus avec pavé tactile à 29,99 €
Valable jusqu'au 12 Juillet

Amazon fait une promotion sur le clavier sans fil Logitech Wireless Desktop K400 Plus à 29,99 € livré gratuitement. Ce clavier sans fil dispose d'un large pavé tactile de 9 cm avec navigation multipoint pour un pointage à un doigt simplifié et un défilement vertical à deux doigts. Idéal pour contrôler votre ordinateur à distance, s'il est connecté à une TV par exemple. On le trouve ailleurs à partir de 40 €. 


> 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