Voila je voudrais daire une difference entre deux dates mais je
voudrais juste le nombre de jours ouvr=E9s entre ces deux dates
ex date de r=E9ception 1/11/2006 et date d'expedition 15/11/2006 il y a
en fait 14 jours de difference mais en comptant les jours ouvr=E9s
Existe t-il une formule pour avoir le bon r=E9sultat ?
Second point voila j'ai un formulaire avec une zone de liste
d=E9roulante contenant environ une vingtaine d'item je voudrais quand je
selectionne un item, une liste de contr=F4le avec des cases =E0 cocher
apparaissent.
Exemple je choisi cuisine dans ma liste de choix et mes contr=F4les
doivent =EAtre les suivants : porte, poign=E9e, bois...
Comment faut il que je m'y prenne ? je pensais faire deux table mais je
ne sais pas si c'est le plus simple...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ze Titi
Bonjour
Concernant ton premier point, utilises les fonctions suivantes (à mettre dans un module quelconque)
Public Function NbreJoursOuvrables(dhDateDébut As Date, dhDateFin As Date) As Integer ' Calculer le nombre de jours ouvrables entre deux dates sans l'aide d'une table ' Utilise la fonction JourFériéMobile(UneDate As Date) ' Dates entrées en format américain: MM/JJ/AAAA ' Entrée: ' dhDateDébut: ' Date de départ de l'intervallle de temps désiré au format européen entre guillemets. ' dhDateFin: ' Date de fin de l'intervalle de temps désiré au format européen entre guillemets. ' (les dates seront inversées si nécessaire) ' Test de validité des dates If IsNull(dhDateDébut) Or IsNull(dhDateFin) Then NbreJoursOuvrables = 0 Exit Function ElseIf Not IsDate(dhDateDébut) Or Not IsDate(dhDateFin) Then NbreJoursOuvrables = 0 Exit Function ElseIf dhDateDébut > dhDateFin Then ' Inversion des dates si nécessaire. Dim dhTemp As Date dhTemp = dhDateDébut dhDateDébut = dhDateFin dhDateFin = dhTemp End If 'Conversion des dates en valeurs numériques (Double précision) format de date interne de la machine Dim dbldhDateDébut As Double Dim dbldhDateFin As Double dbldhDateDébut = CDbl(dhDateDébut) dbldhDateFin = CDbl(dhDateFin) Dim dhDateCourante As Date Dim Résultat As Integer Dim intAn As Integer intAn = Year(Date) ' Comptage des jours entre la date de début et la date de fin de l'intervalle de temps spécifié Do Until dbldhDateDébut > dbldhDateFin ' Initialisation du jour courant à la date de début dhDateCourante = CDate(dbldhDateDébut) 'Test pour savoir si le jour courant est ouvrable If WeekDay(dhDateCourante) <> 1 And WeekDay(dhDateCourante) <> 7 Then 'Test des jours fériés avec dates invariables Select Case dhDateCourante Case CDate("01/01/" & intAn) 'Jour de l'an Case CDate("01/05/" & intAn) 'Fête du travail Case CDate("01/08/" & intAn) 'Fête nationale suisse Case CDate("25/12/" & intAn) 'Noël Case CDate("26/12/" & intAn) 'St-Etienne Case Else 'Test pour savoir si la date courante n'est pas un jour férié mobile If JourFériéMobile(dhDateCourante) = False Then ' Totalise les jours ouvrables Résultat = Résultat + 1 End If End Select End If dbldhDateDébut = dbldhDateDébut + 1 Loop NbreJoursOuvrables = Résultat End Function
Private Function JourFériéMobile(UneDate As Date) As Boolean 'Cette fonction contrôle si le jour n'est pas un jour férié chrétien 'Toutes les dates sont fondées sur le dimanche de Pâques Dim Pâques As Date Pâques = fPaques(Year(UneDate)) Select Case UneDate Case Pâques - 2 'Vendredi-Saint JourFériéMobile = True Case Pâques + 1 'Lundi de Pâques JourFériéMobile = True Case Pâques + 39 'Ascension JourFériéMobile = True Case Pâques + 50 'Lundi de pentcôte JourFériéMobile = True Case Else JourFériéMobile = False End Select End Function
Concernant ton second point, effectivement l'utilisation de 2 tables me paraît indispensable.
Tes cases à cocher seront à intégrer dans un sous-formulaire en mode continu dont la source correspondra à ta liste déroulante.
Bonjour à tous
Voila je voudrais daire une difference entre deux dates mais je voudrais juste le nombre de jours ouvrés entre ces deux dates ex date de réception 1/11/2006 et date d'expedition 15/11/2006 il y a en fait 14 jours de difference mais en comptant les jours ouvrés Existe t-il une formule pour avoir le bon résultat ?
Second point voila j'ai un formulaire avec une zone de liste déroulante contenant environ une vingtaine d'item je voudrais quand je selectionne un item, une liste de contrôle avec des cases à cocher apparaissent. Exemple je choisi cuisine dans ma liste de choix et mes contrôles doivent être les suivants : porte, poignée, bois... Comment faut il que je m'y prenne ? je pensais faire deux table mais je ne sais pas si c'est le plus simple...
Pouvez vous m'aidez ?
Merci beaucoup
A+
-- Voilou ! Bon code Cordialement,
Ze Titi
Bonjour lolo_bob2@yahoo.fr
Concernant ton premier point, utilises les fonctions suivantes (à
mettre dans un module quelconque)
Public Function NbreJoursOuvrables(dhDateDébut As Date, dhDateFin As
Date) As Integer
' Calculer le nombre de jours ouvrables entre deux dates sans l'aide
d'une table
' Utilise la fonction JourFériéMobile(UneDate As Date)
' Dates entrées en format américain: MM/JJ/AAAA
' Entrée:
' dhDateDébut:
' Date de départ de l'intervallle de temps désiré au format européen
entre guillemets.
' dhDateFin:
' Date de fin de l'intervalle de temps désiré au format européen entre
guillemets.
' (les dates seront inversées si nécessaire)
' Test de validité des dates
If IsNull(dhDateDébut) Or IsNull(dhDateFin) Then
NbreJoursOuvrables = 0
Exit Function
ElseIf Not IsDate(dhDateDébut) Or Not IsDate(dhDateFin) Then
NbreJoursOuvrables = 0
Exit Function
ElseIf dhDateDébut > dhDateFin Then
' Inversion des dates si nécessaire.
Dim dhTemp As Date
dhTemp = dhDateDébut
dhDateDébut = dhDateFin
dhDateFin = dhTemp
End If
'Conversion des dates en valeurs numériques (Double précision) format
de date interne de la machine
Dim dbldhDateDébut As Double
Dim dbldhDateFin As Double
dbldhDateDébut = CDbl(dhDateDébut)
dbldhDateFin = CDbl(dhDateFin)
Dim dhDateCourante As Date
Dim Résultat As Integer
Dim intAn As Integer
intAn = Year(Date)
' Comptage des jours entre la date de début et la date de fin de
l'intervalle de temps spécifié
Do Until dbldhDateDébut > dbldhDateFin
' Initialisation du jour courant à la date de début
dhDateCourante = CDate(dbldhDateDébut)
'Test pour savoir si le jour courant est ouvrable
If WeekDay(dhDateCourante) <> 1 And WeekDay(dhDateCourante) <> 7
Then
'Test des jours fériés avec dates invariables
Select Case dhDateCourante
Case CDate("01/01/" & intAn) 'Jour de l'an
Case CDate("01/05/" & intAn) 'Fête du travail
Case CDate("01/08/" & intAn) 'Fête nationale suisse
Case CDate("25/12/" & intAn) 'Noël
Case CDate("26/12/" & intAn) 'St-Etienne
Case Else
'Test pour savoir si la date courante n'est pas un jour férié mobile
If JourFériéMobile(dhDateCourante) = False Then
' Totalise les jours ouvrables
Résultat = Résultat + 1
End If
End Select
End If
dbldhDateDébut = dbldhDateDébut + 1
Loop
NbreJoursOuvrables = Résultat
End Function
Private Function JourFériéMobile(UneDate As Date) As Boolean
'Cette fonction contrôle si le jour n'est pas un jour férié chrétien
'Toutes les dates sont fondées sur le dimanche de Pâques
Dim Pâques As Date
Pâques = fPaques(Year(UneDate))
Select Case UneDate
Case Pâques - 2 'Vendredi-Saint
JourFériéMobile = True
Case Pâques + 1 'Lundi de Pâques
JourFériéMobile = True
Case Pâques + 39 'Ascension
JourFériéMobile = True
Case Pâques + 50 'Lundi de pentcôte
JourFériéMobile = True
Case Else
JourFériéMobile = False
End Select
End Function
Concernant ton second point, effectivement l'utilisation de 2 tables me
paraît indispensable.
Tes cases à cocher seront à intégrer dans un sous-formulaire en mode
continu dont la source correspondra à ta liste déroulante.
Bonjour à tous
Voila je voudrais daire une difference entre deux dates mais je
voudrais juste le nombre de jours ouvrés entre ces deux dates
ex date de réception 1/11/2006 et date d'expedition 15/11/2006 il y a
en fait 14 jours de difference mais en comptant les jours ouvrés
Existe t-il une formule pour avoir le bon résultat ?
Second point voila j'ai un formulaire avec une zone de liste
déroulante contenant environ une vingtaine d'item je voudrais quand je
selectionne un item, une liste de contrôle avec des cases à cocher
apparaissent.
Exemple je choisi cuisine dans ma liste de choix et mes contrôles
doivent être les suivants : porte, poignée, bois...
Comment faut il que je m'y prenne ? je pensais faire deux table mais je
ne sais pas si c'est le plus simple...
Concernant ton premier point, utilises les fonctions suivantes (à mettre dans un module quelconque)
Public Function NbreJoursOuvrables(dhDateDébut As Date, dhDateFin As Date) As Integer ' Calculer le nombre de jours ouvrables entre deux dates sans l'aide d'une table ' Utilise la fonction JourFériéMobile(UneDate As Date) ' Dates entrées en format américain: MM/JJ/AAAA ' Entrée: ' dhDateDébut: ' Date de départ de l'intervallle de temps désiré au format européen entre guillemets. ' dhDateFin: ' Date de fin de l'intervalle de temps désiré au format européen entre guillemets. ' (les dates seront inversées si nécessaire) ' Test de validité des dates If IsNull(dhDateDébut) Or IsNull(dhDateFin) Then NbreJoursOuvrables = 0 Exit Function ElseIf Not IsDate(dhDateDébut) Or Not IsDate(dhDateFin) Then NbreJoursOuvrables = 0 Exit Function ElseIf dhDateDébut > dhDateFin Then ' Inversion des dates si nécessaire. Dim dhTemp As Date dhTemp = dhDateDébut dhDateDébut = dhDateFin dhDateFin = dhTemp End If 'Conversion des dates en valeurs numériques (Double précision) format de date interne de la machine Dim dbldhDateDébut As Double Dim dbldhDateFin As Double dbldhDateDébut = CDbl(dhDateDébut) dbldhDateFin = CDbl(dhDateFin) Dim dhDateCourante As Date Dim Résultat As Integer Dim intAn As Integer intAn = Year(Date) ' Comptage des jours entre la date de début et la date de fin de l'intervalle de temps spécifié Do Until dbldhDateDébut > dbldhDateFin ' Initialisation du jour courant à la date de début dhDateCourante = CDate(dbldhDateDébut) 'Test pour savoir si le jour courant est ouvrable If WeekDay(dhDateCourante) <> 1 And WeekDay(dhDateCourante) <> 7 Then 'Test des jours fériés avec dates invariables Select Case dhDateCourante Case CDate("01/01/" & intAn) 'Jour de l'an Case CDate("01/05/" & intAn) 'Fête du travail Case CDate("01/08/" & intAn) 'Fête nationale suisse Case CDate("25/12/" & intAn) 'Noël Case CDate("26/12/" & intAn) 'St-Etienne Case Else 'Test pour savoir si la date courante n'est pas un jour férié mobile If JourFériéMobile(dhDateCourante) = False Then ' Totalise les jours ouvrables Résultat = Résultat + 1 End If End Select End If dbldhDateDébut = dbldhDateDébut + 1 Loop NbreJoursOuvrables = Résultat End Function
Private Function JourFériéMobile(UneDate As Date) As Boolean 'Cette fonction contrôle si le jour n'est pas un jour férié chrétien 'Toutes les dates sont fondées sur le dimanche de Pâques Dim Pâques As Date Pâques = fPaques(Year(UneDate)) Select Case UneDate Case Pâques - 2 'Vendredi-Saint JourFériéMobile = True Case Pâques + 1 'Lundi de Pâques JourFériéMobile = True Case Pâques + 39 'Ascension JourFériéMobile = True Case Pâques + 50 'Lundi de pentcôte JourFériéMobile = True Case Else JourFériéMobile = False End Select End Function
Concernant ton second point, effectivement l'utilisation de 2 tables me paraît indispensable.
Tes cases à cocher seront à intégrer dans un sous-formulaire en mode continu dont la source correspondra à ta liste déroulante.
Bonjour à tous
Voila je voudrais daire une difference entre deux dates mais je voudrais juste le nombre de jours ouvrés entre ces deux dates ex date de réception 1/11/2006 et date d'expedition 15/11/2006 il y a en fait 14 jours de difference mais en comptant les jours ouvrés Existe t-il une formule pour avoir le bon résultat ?
Second point voila j'ai un formulaire avec une zone de liste déroulante contenant environ une vingtaine d'item je voudrais quand je selectionne un item, une liste de contrôle avec des cases à cocher apparaissent. Exemple je choisi cuisine dans ma liste de choix et mes contrôles doivent être les suivants : porte, poignée, bois... Comment faut il que je m'y prenne ? je pensais faire deux table mais je ne sais pas si c'est le plus simple...
Pouvez vous m'aidez ?
Merci beaucoup
A+
-- Voilou ! Bon code Cordialement,
Ze Titi
ze Titi
Bonjour
J'ai oublié, ajoute aussi la fonction suivante...
Public Function fPaques(wAn%) As Date 'Pâques est le dimanche qui suit le quatorzième jour de la Lune qui tombe le 21 mars ou immédiatement après 'Cette fonction calcule aussi la date des jours fériés chrétiens Dim wA%, wB%, wC%, wD%, wE%, wF%, wG%, wH%, wI%, wJ%, wK%, wL%, wM%, wN%, wP% Dim dtPaques As Date, dtVenSaint As Date, dtLunPaq As Date, dtAscension As Date Dim dtDimPent As Date, dtLunPent As Date Dim strMsg As String, strTitre As String Dim TableauJoursFeriés(10), i As Integer 'Calcul du rang de l'année dans le cycle lunaire qui a 19 ans wA = wAn Mod 19 'Calcul du siècle wB = wAn 100 'Calcul du rang de l'année dans le siècle wC = wAn Mod 100 wD = wB 4 wE = wB Mod 4 'Synchronisation avec le cycle lunaire wF = (wB + 8) 25 wG = (wB - wF + 1) 3 wH = (19 * wA + wB - wD - wG + 15) Mod 30 wI = wC 4 wK = wC Mod 4 wL = (32 + 2 * wE + 2 * wI - wH - wK) Mod 7 wM = (wA + 11 * wH + 22 * wL) 451 wN = (wH + wL - 7 * wM + 114) 31 wP = (wH + wL - 7 * wM + 114) Mod 31 fPaques = DateSerial(wAn, wN, wP + 1) End Function
dans ton message du 22/11/2006,
Bonjour à tous
Voila je voudrais daire une difference entre deux dates mais je voudrais juste le nombre de jours ouvrés entre ces deux dates ex date de réception 1/11/2006 et date d'expedition 15/11/2006 il y a en fait 14 jours de difference mais en comptant les jours ouvrés Existe t-il une formule pour avoir le bon résultat ?
Second point voila j'ai un formulaire avec une zone de liste déroulante contenant environ une vingtaine d'item je voudrais quand je selectionne un item, une liste de contrôle avec des cases à cocher apparaissent. Exemple je choisi cuisine dans ma liste de choix et mes contrôles doivent être les suivants : porte, poignée, bois... Comment faut il que je m'y prenne ? je pensais faire deux table mais je ne sais pas si c'est le plus simple...
Pouvez vous m'aidez ?
Merci beaucoup
A+
-- Voilou ! Bon code Cordialement,
Ze Titi
Bonjour lolo_bob2@yahoo.fr
J'ai oublié, ajoute aussi la fonction suivante...
Public Function fPaques(wAn%) As Date
'Pâques est le dimanche qui suit le quatorzième jour de la Lune qui
tombe le 21 mars ou immédiatement après
'Cette fonction calcule aussi la date des jours fériés chrétiens
Dim wA%, wB%, wC%, wD%, wE%, wF%, wG%, wH%, wI%, wJ%, wK%, wL%, wM%,
wN%, wP%
Dim dtPaques As Date, dtVenSaint As Date, dtLunPaq As Date, dtAscension
As Date
Dim dtDimPent As Date, dtLunPent As Date
Dim strMsg As String, strTitre As String
Dim TableauJoursFeriés(10), i As Integer
'Calcul du rang de l'année dans le cycle lunaire qui a 19 ans
wA = wAn Mod 19
'Calcul du siècle
wB = wAn 100
'Calcul du rang de l'année dans le siècle
wC = wAn Mod 100
wD = wB 4
wE = wB Mod 4
'Synchronisation avec le cycle lunaire
wF = (wB + 8) 25
wG = (wB - wF + 1) 3
wH = (19 * wA + wB - wD - wG + 15) Mod 30
wI = wC 4
wK = wC Mod 4
wL = (32 + 2 * wE + 2 * wI - wH - wK) Mod 7
wM = (wA + 11 * wH + 22 * wL) 451
wN = (wH + wL - 7 * wM + 114) 31
wP = (wH + wL - 7 * wM + 114) Mod 31
fPaques = DateSerial(wAn, wN, wP + 1)
End Function
dans ton message
<1164233024.028280.113160@j44g2000cwa.googlegroups.com> du 22/11/2006,
Bonjour à tous
Voila je voudrais daire une difference entre deux dates mais je
voudrais juste le nombre de jours ouvrés entre ces deux dates
ex date de réception 1/11/2006 et date d'expedition 15/11/2006 il y a
en fait 14 jours de difference mais en comptant les jours ouvrés
Existe t-il une formule pour avoir le bon résultat ?
Second point voila j'ai un formulaire avec une zone de liste
déroulante contenant environ une vingtaine d'item je voudrais quand je
selectionne un item, une liste de contrôle avec des cases à cocher
apparaissent.
Exemple je choisi cuisine dans ma liste de choix et mes contrôles
doivent être les suivants : porte, poignée, bois...
Comment faut il que je m'y prenne ? je pensais faire deux table mais je
ne sais pas si c'est le plus simple...
Public Function fPaques(wAn%) As Date 'Pâques est le dimanche qui suit le quatorzième jour de la Lune qui tombe le 21 mars ou immédiatement après 'Cette fonction calcule aussi la date des jours fériés chrétiens Dim wA%, wB%, wC%, wD%, wE%, wF%, wG%, wH%, wI%, wJ%, wK%, wL%, wM%, wN%, wP% Dim dtPaques As Date, dtVenSaint As Date, dtLunPaq As Date, dtAscension As Date Dim dtDimPent As Date, dtLunPent As Date Dim strMsg As String, strTitre As String Dim TableauJoursFeriés(10), i As Integer 'Calcul du rang de l'année dans le cycle lunaire qui a 19 ans wA = wAn Mod 19 'Calcul du siècle wB = wAn 100 'Calcul du rang de l'année dans le siècle wC = wAn Mod 100 wD = wB 4 wE = wB Mod 4 'Synchronisation avec le cycle lunaire wF = (wB + 8) 25 wG = (wB - wF + 1) 3 wH = (19 * wA + wB - wD - wG + 15) Mod 30 wI = wC 4 wK = wC Mod 4 wL = (32 + 2 * wE + 2 * wI - wH - wK) Mod 7 wM = (wA + 11 * wH + 22 * wL) 451 wN = (wH + wL - 7 * wM + 114) 31 wP = (wH + wL - 7 * wM + 114) Mod 31 fPaques = DateSerial(wAn, wN, wP + 1) End Function
dans ton message du 22/11/2006,
Bonjour à tous
Voila je voudrais daire une difference entre deux dates mais je voudrais juste le nombre de jours ouvrés entre ces deux dates ex date de réception 1/11/2006 et date d'expedition 15/11/2006 il y a en fait 14 jours de difference mais en comptant les jours ouvrés Existe t-il une formule pour avoir le bon résultat ?
Second point voila j'ai un formulaire avec une zone de liste déroulante contenant environ une vingtaine d'item je voudrais quand je selectionne un item, une liste de contrôle avec des cases à cocher apparaissent. Exemple je choisi cuisine dans ma liste de choix et mes contrôles doivent être les suivants : porte, poignée, bois... Comment faut il que je m'y prenne ? je pensais faire deux table mais je ne sais pas si c'est le plus simple...
Pouvez vous m'aidez ?
Merci beaucoup
A+
-- Voilou ! Bon code Cordialement,
Ze Titi
lolo_bob2
Merci pour tes réponses
Dans ton message tu as écrit: "Concernant ton second point, effectivement l'utilisation de 2 tables me paraît indispensable. Tes cases à cocher seront à intégrer dans un sous-formulaire en mode
continu dont la source correspondra à ta liste déroulante"
Mais concernant le deuxième point je ne vois pas trop comment faire un lien entre mes deux tables c'est à dire je ne vois pas quoi mettre dans ma première table et quoi mettre comme champ dans la seconde
Pour la première question j'ai un soucis car j'ai plusieurs date à comparer...je faisais ca dans une requête basée sur ma table principale auparavant, mais j'avais tous les jours et non que les jours ouvrés... Est ce que je suis obligé d'utiliser tout ce code ? n'y a t'il pas une façon plus simple ?
Merci pour tes réponses
A+
Merci pour tes réponses
Dans ton message tu as écrit:
"Concernant ton second point, effectivement l'utilisation de 2 tables
me
paraît indispensable.
Tes cases à cocher seront à intégrer dans un sous-formulaire en mode
continu dont la source correspondra à ta liste déroulante"
Mais concernant le deuxième point je ne vois pas trop comment faire un
lien entre mes deux tables c'est à dire je ne vois pas quoi mettre
dans ma première table et quoi mettre comme champ dans la seconde
Pour la première question j'ai un soucis car j'ai plusieurs date à
comparer...je faisais ca dans une requête basée sur ma table
principale auparavant, mais j'avais tous les jours et non que les jours
ouvrés...
Est ce que je suis obligé d'utiliser tout ce code ? n'y a t'il pas une
façon plus simple ?
Dans ton message tu as écrit: "Concernant ton second point, effectivement l'utilisation de 2 tables me paraît indispensable. Tes cases à cocher seront à intégrer dans un sous-formulaire en mode
continu dont la source correspondra à ta liste déroulante"
Mais concernant le deuxième point je ne vois pas trop comment faire un lien entre mes deux tables c'est à dire je ne vois pas quoi mettre dans ma première table et quoi mettre comme champ dans la seconde
Pour la première question j'ai un soucis car j'ai plusieurs date à comparer...je faisais ca dans une requête basée sur ma table principale auparavant, mais j'avais tous les jours et non que les jours ouvrés... Est ce que je suis obligé d'utiliser tout ce code ? n'y a t'il pas une façon plus simple ?